Dovecot não usado como LDA pelo Postfix

1

Eu tento configurar um servidor de e-mail no Ubuntu usando Postfix, Dovecot e LDAP. Até agora eu posso enviar e receber e-mails com o Postfix e pode se conectar ao Dovecot via telnet (porta 143) com um usuário LDAP.

Como próximo passo, gostaria de configurar o Dovecot como meu LDA, conforme sugerido no livro Postfix por R. Hildebrandt e P.B. Koetter Até agora, no entanto Postfix tenta usar o deamon local para entregar e-mails para um destinatário local.

Até agora, configurei o seguinte (o domínio real é substituído por example.com ):

Ative o dovecot em /etc/dovecot/conf.d/15-lda.conf :

protocol lda {
  postmaster_address = [email protected]
}

service auth {
  unix_listener auth-master {
    mode = 0600
    user = vmail
  }
}

Configure o dovecot em /etc/postfix/master.cf :

dovecot   unix  -       n       n       -       -       pipe
  flags=ODRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -e -f ${sender} -d ${recipient}

Transporte virtual configurado em /etc/postfix/main.cf :

virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

Quando eu emito o comando echo foo | /usr/sbin/sendmail -f [email protected] [email protected] , recebo a seguinte saída de log:

postfix/qmgr[25582]: 2AA0060E36: from=<[email protected]>, size=272, nrcpt=1 (queue active)
postfix/local[26102]: 2AA0060E36: to=<[email protected]>, relay=local, delay=0.01, delays=0.01/0/0/0, dsn=5.1.1, status=bounced (unknown user: "ttester")

O usuário ttester existe na árvore LDAP e pode ser encontrado pelo Dovecot. Por exemplo, se eu emitir o comando deliver manualmente, o email será enviado. No entanto, somente se um não especificar o domínio:

/usr/lib/dovecot/deliver -e -f [email protected] -d ttester

Para resumir o problema, suspeito que, por alguma razão, o Postfix não delegue a entrega para o Dovecot. Qualquer ajuda é muito apreciada.

Obrigado antecipadamente!

Veja o que o postconf -n produz:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = $mydomain, $myhostname, localhost, localhost.$mydomain
myhostname = mail.example.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_data_restrictions = reject_multi_recipient_bounce
smtpd_helo_required = yes
smtpd_recipient_restrictions = reject_non_fqdn_recipient reject_non_fqdn_sender reject_unknown_recipient_domain reject_unknown_sender_domain permit_mynetworks reject_sender_login_mismatch reject_unauth_destination check_recipient_access hash:/etc/postfix/roleaccount_exceptions reject_multi_recipient_bounce reject_non_fqdn_helo_hostname reject_invalid_helo_hostname check_helo_access pcre:/etc/postfix/helo_checks check_sender_mx_access cidr:/etc/postfix/bogus_mx permit
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
virtual_transport = dovecot
    
por Andreas Hahne 05.06.2015 / 19:39

1 resposta

2

O postfix usará as classes de endereço para determinar qual classe de domínio e seu transporte fornecerá um email.

Com base na sua postconf de saída, o $domain / example.com está listado em mydestination , portanto, usará as classes de endereço local e usará o parâmetro $local_transport (run postconf local_transport ) para entregar o email.

É por isso que virtual_transport foi ignorado pelo postfix. A solução proposta é remover $ mydomain do mydestination e colocar em virtual_mailbox_domains .

    
por 09.06.2015 / 04:03