メールサーバをpostfix/dovecotをベースとしたiredmailというメールシステムに置き換えた。
そうしたところ、いままでは出来ていた他にあるWebサーバ上から送信した自ドメイン宛のメールが送れなくなってしまった。
ログを確認すると以下のようになっている。
Aug 2 16:36:25 ホスト名 postfix/smtpd[4994]: NOQUEUE: reject: RCPT from 送信元ホスト名[IPアドレス]: 554 5.7.1 <宛先メールアドレス>: Recipient address rejected: SMTP AUTH is required for users under this sender domain; from=<差し出しメールアドレス> to=<宛先メールアドレス> proto=SMTP helo=<送信元ホスト名>
SMTP AUTHを要求している。
公式ドキュメントに「Recipient address rejected: SMTP AUTH is required for users under this sender domain」という記載がある。
しかし、ここで書かれている下記のMYNETWORKS設定はどちらかというと内部ネットワーク向けの設定である。
MYNETWORKS = ['192.168.0.10', '192.168.0.20', '192.168.0.30']
もうちょっとなんとかならないかなぁ、と探したところフォーラムにQAを発見。
「SMTP AUTH is required for users under this sender domain (Mailing list」
/opt/iredapd/settings.py に「CHECK_SPF_IF_LOGIN_MISMATCH = True」を追加して、iredapd.serviceを再起動しろ、というもの。
この設定を行うと、DNSのSPFに登録してあるサーバから送信されたメールはSMTP AUTHを要求しなくなるようだ。
これを設定してみたところ、問題は解決したようだ。