💬

gmail.comへ送信したメールが弾かれてしまった問題の対応

2023/06/01に公開

きっかけ

あるサイトのお問い合わせから受信用のメールアドレスに届いたり届かなかったりするという連絡がクライアントからきた。

原因

Return-Pathがサーバのホスト名になっていたためSPFレコードとマッチしなかった。

対応

メール送信のプログラムがmail関数を使用し、SMTPとしてsendmailを利用していたため 、additional_paramsでfオプションでメールのReturn-Pathを指定した。

実施した調査内容

/var/log/maillogの確認

statがSentではなく、Service unavailableになっていることを確認。

SPFレコードの確認

dig example.domain TXT +short

エラーメールの確認

意図せずReturn-Pathがサーバのホスト名になっていたので、Return-Pathのアドレスに届いているメール内容を確認。
実際の内容は以下。(ただし固有情報の部分は適当に差し替え)

while talking to gmail-smtp-in.l.google.com.:
>>> DATA
<<< 550-5.7.26 This mail is unauthenticated, which poses a security risk to the
<<< 550-5.7.26 sender and Gmail users, and has been blocked. The sender must
<<< 550-5.7.26 authenticate with at least one of SPF or DKIM. For this message,
<<< 550-5.7.26 DKIM checks did not pass and SPF check for [xxxxxxxx
<<< 550-5.7.26 xxxxxxx] did not pass with ip: [xxxxxxx]. The
<<< 550-5.7.26 sender should visit
<<< 550-5.7.26  https://support.google.com/mail/answer/81126#authentication for
<<< 550 5.7.26 instructions on setting up authentication. xxxxxxxxxxxx - gsmtp
554 5.0.0 Service unavailable

提示されたドキュメントに以下の記載があったので、おそらくこれに引っかかり始めたものと思われる。

重要: 2022 年 11 月より、個人用 Gmail アカウントにメールを送信する新規の送信者は、
SPF または DKIM を設定する必要があります。
Google では、新規の送信者から個人用 Gmail アカウント宛てのメールをランダムにチェックして、
認証されたメールであることを確認します。認証方法が一つも設定されていないメールは拒否されるか、
迷惑メールに分類されます。この要件は、すでに送信者である場合は適用されません。ただし、組織のメールを保護し、
今後の認証要件をサポートするために、必ず SPF と DKIM を設定することをおすすめします。

まとめ

  • メールの送信設定を行う場合はFromだけでなく、Return-Pathもきちんと設定した情報になっていることを確認すべき
  • メールの送信を行う際にはきちんと受信側でSPFの結果がPASSになっていることを確認すべき
    • 今回はSPF結果がNeutralになっていた

参考サイト

GitHubで編集を提案
株式会社D2C ID

Discussion