今日も元気にテクニカル

技術情報書きたいけど本ブログに書きたくないからこんな名前になりました。

postfixでメール送信

postfixは去年の12月17日に設定に挑戦したのだが上手く動かなかった。特に使う予定もなかったので分からないまま放置していたが、今回自鯖からメールを送信したかったため、再挑戦してみた。

去年も今回も参考にしたのはこのサイト。

メールサーバー構築(Postfix+Dovecot) - Fedoraで自宅サーバー構築
OP25B(Outbound Port 25 Blocking)対策 - Fedoraで自宅サーバー構築

最初のページから順番に設定を見直すも、間違っているところが分からない…。ので、マニュアルから外れて試行錯誤した結果、一つ目の間違いが分かった。

1.プロバイダのSMTPアドレスが間違っていた。

僕はbbexciteを利用しているので、relayhostに設定するSMTPアドレスは

smtp.star.bbexcite.jp

これを

smtp.star.bbexcite.co.jp

としていたため、正しくメールリレーされていなかったのだ…。がっかりした所で改めてメールを送って成功!しなかった。

553 sorry, that domain isn't in my list of allowed rcpthosts 

メーラーデーモンからこんなメッセージ付きのエラーメール着信。どうやらSMTP認証ができていない時に出るらしいので、IDやパスワードを見直したが特に間違っている所もなし。ここでまたマニュアルから外れて試行錯誤した結果、間違いが分かりました。

2.そもそもSMTP認証が有効になっていなかった。

OP25B対策(Outbound Port 25 Blocking対策)

特に最初の「smtp_sasl_auth_enable = yes」は、自分がサーバとしてSMTP-AUTHをサポートするときの「smtpd_sasl_auth_enable = yes」と勘違いしやすいが全く別なので必ず設定が必要である。

smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions =
    permit_auth_destination,
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination

<strong>smtp_sasl_auth_enable = yes</strong>
smtp_sasl_password_maps = hash:/etc/postfix/authinfo
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = LOGIN, CRAM-MD5, PLAIN

いや、分かりづれーから!
てことで、太字の部分を追加した結果、無事gmailにメールを送れました。

前回も今回も、酒飲みながらやったのがまずかったかな。うん。