特定ドメイン宛のメールを外部のSMTPサーバに転送する

とあるML宛にメールを出すと

Feb 14 12:22:56 eswat2 postfix/smtp[488]: D199170E91: to=<example@example.or.jp>, relay=lists.example.or.jp[210.xxx.yyy.47]:25, delay=15, delays=0.05/0.01/15/0, dsn=4.0.0, status=deferred (host lists.example.or.jp[210.xxx.yyy.47] refused to talk to me: 450 Client host rejected: cannot find your hostname, [218.219.149.234])

相手側のメールサーバが、「こちらのメールサーバの逆引きが出来ない」事が原因で、受信を一時的に拒否している、とログに記録されて、送信できない状況。
答えられる内容のメールが流れても、メールが送れなくてはどうしようもないので、ちょっとメールサーバに手を入れてみた。


どうするかというと、特定ドメイン宛のメールだけを、外部のSMTPサーバに中継を頼むという方法。
外部のSMTPといってもSPAMの温床となるオープンリレーなサーバを使うわけにはいかないので、今回はGmailのSMTPサーバを使うことで設定してみました。

Gmailのヘルプを見ると

  • 送信メール (SMTP) サーバー - TLS を使用する場合:
    • smtp.gmail.com (認証を使用)
    • 認証の使用: 有効
    • STARTTLS の使用: 有効 (クライアントによっては SSL とも呼ばれます)
    • ポート: 465 または 587

と記載されているので、こちら側のSMTPサーバをその通りに設定できればOKということなわけだ。
もちろん"postfix SMTP認証 gmail"でググれば、設定例を見つけられるので、それを参考に設定していけばいいわけだが、Debian etchの場合だとpostfixをインストールした時点で必要なパッケージもインストールされるようなので、本当に設定だけでOK。

うちでハマった点というと、master.cfの

587       inet  n       -       n       -       -       smtpd -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes

を有効にしてなくて、認証が出来なかったことぐらいでしょうか?

トラックバック(0)

コメントする