次のリンクを参考にして、電子メール用にサーバーを設定しようとしています:Postfix での送信メールの SMTP リレー - Webmin の使用. 私はマンドリル私の場合は、SMTP サーバーです。メイン サーバーを構成する前に、vagrent インスタンスも構成しました。ただし、次を使用してサーバー (vagrant とメインの両方) からメールを送信しようとすると、
sendemail -f [email protected] -t <myemail>@gmail.com -m "Message Body" -u "Message Subject"
メッセージは postfix でキューに入れられ、宛先に届きません。
/var/log/mail.log
ファイルには以下が表示されます:
precise64 postfix/smtpd[16542]: connect from localhost[127.0.0.1]
precise64 postfix/smtpd[16542]: 116033A4253: client=localhost[127.0.0.1]
precise64 postfix/cleanup[16545]: 116033A4253: message-id=<621108.689435886-sendEmail@precise64>
precise64 postfix/qmgr[12672]: 116033A4253: from=<[email protected]>, size=916, nrcpt=1 (queue active)
precise64 postfix/smtpd[16542]: disconnect from localhost[127.0.0.1]
precise64 postfix/smtp[16546]: Untrusted TLS connection established to smtp.mandrillapp.com[54.195.231.78]:587: TLSv1.1 with cipher AECDH-AES256-SHA (256/256 bits)
precise64 postfix/smtp[16546]: 116033A4253: host smtp.mandrillapp.com[54.195.231.78] said: 454 4.7.1 <[email protected]>: Relay access denied (in reply to RCPT TO command)
precise64 postfix/smtp[16546]: Untrusted TLS connection established to smtp.mandrillapp.com[54.247.27.189]:587: TLSv1.1 with cipher AECDH-AES256-SHA (256/256 bits)
precise64 postfix/smtp[16546]: 116033A4253: to=<[email protected]>, relay=smtp.mandrillapp.com[54.247.27.189]:587, delay=4.3, delays=0.06/0.01/4/0.28, dsn=4.7.1, status=deferred (host smtp.mandrillapp.com[54.247.27.189] said: 454 4.7.1 <[email protected]>: Relay access denied (in reply to RCPT TO command))
そして/etc/postfix/main.cf
ファイル:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# TLS parameters
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = precise64
# myhostname = example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = precise64, localhost.localdomain, , localhost
relayhost = smtp.mandrillapp.com:587
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
# mynetworks = example.com
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks reject_unauth_destination
virtual_alias_maps = hash:/etc/postfix/generic
smtp_tls_loglevel = 1
smtp_tls_security_level = encrypt
smtp_sasl_security_options = noanonymous
smtp_generic_maps = hash:/etc/postfix/generic
何かアドバイスが必要です。何が間違っているのでしょうか? メール サーバーの設定は初心者です。些細な間違いがあったらご容赦ください。
答え1
ここでの問題は、送信メールを というサーバーに中継するようにサーバーを設定していることですsmtp.mandrillapp.com
。その結果、そのサーバーはメールの中継を受け入れません。
この会社については知りませんが、認証された顧客からのメールのみを中継しており、ログインしていないのではないかと思います。
おそらく、main.cf のどこかに次のような行があるはずです。
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/remote_passwords
smtp_sasl_security_options = noplaintext,noanonymous
smtp_sasl_tls_security_options = noanonymous
ファイルは/etc/postfix/remote_passwords
次のようになります
smtp.mandrillapp.com:587 login:password
mandrillapp からのログイン/パスワードを入力します。
また、設定ファイルには、smtpd_sasl_auth_enable
クライアントがサーバーにログインすることを期待している場合にのみ関連する (smtp の末尾の 'd' に注意) 項目があり、そのための設定が十分ではないようです。必要なことを確認する必要があります。
答え2
smtp_sasl_password_maps
Mandrill API キーはどこで定義していますか?にディレクティブがないと思いますmain.cf
。以下を参照してください。
答え3
この場合、リレーのユーザー名とパスワードの組み合わせを指定するポートが実際に非常に重要であることがわかりました。使用していたサーバー名の末尾に :588 を追加しなかったため、メール サーバーが長時間ハングアップしました。本当に面倒です。