Postfix、Dovecot、LDAPを使用してUbuntuにメールサーバーをセットアップしようとしています。これまでのところ、Postfixでメールを送受信でき、LDAPユーザーを使用してtelnet(ポート143)経由でDovecotに接続できます。
次のステップとして、R。HildebrandtとP.B.による本Postfixで提案されているように、DovecotをLDAとして構成したいと思います。コエッター。ただし、これまで、Postfixはローカルデーモンを使用してローカル受信者にメールを配信しようとしました。
これまでのところ、次のように構成しました(実際のドメインはexample.comに置き換えられます):
/ etc/dovecot/conf.d/15-lda.confでdovecot配信をアクティブ化する:
protocol lda {
postmaster_address = [email protected]
}
service auth {
unix_listener auth-master {
mode = 0600
user = vmail
}
}
/ etc/postfix/master.cfでdovecotをセットアップします:
dovecot unix - n n - - pipe
flags=ODRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -e -f ${sender} -d ${recipient}
/ etc/postfix/main.cfで構成された仮想トランスポート:
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
コマンドを発行するとecho foo | /usr/sbin/sendmail -f [email protected] [email protected]
次のログ出力を受け取ります。
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")
ユーザーttester
はLDAPツリーに存在し、Dovecotで見つけることができます。たとえば、deliver
コマンドを手動で発行すると、メールが送信されます。ただし、しないドメインを指定する場合のみ:
/usr/lib/dovecot/deliver -e -f [email protected] -d ttester
問題を要約すると、何らかの理由でPostfixがDovecotに配信を委任していないのではないかと思います。どんな助けでも大歓迎です。
前もって感謝します!
これがpostconf -n
生成:
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
Postfixは、アドレスクラスを使用して、電子メールを配信するドメインクラスとそのトランスポートを決定します。
postconf
出力に基づいて、$domain
/example.com
はmydestination
にリストされるため、ローカルアドレスクラスを使用し、$local_transport
パラメーターを使用します(実行postconf local_transport
)メールを配信します。
そのため、virtual_transport
は接尾辞によって無視されました。提案された解決策は、mydestinationから$ mydomainを削除し、それをvirtual_mailbox_domains
に配置することです。