Postfixで送信したメールがGmailに届かない又は迷惑メール判定をされる場合の対応方法
2023年09月18日 更新
概要: Postfixで送信したメールがGmailに届かない又は迷惑メール判定をされる場合の対応方法を紹介
メールが届かない原因は複数あるが、一例として「SPF」を挙げる。
環境
Postfix (Submission587番ポートを使用) / TLS (Let's Encrypt証明書を使用)
起こる現象
Postfixから送信されたメールが迷惑メールとして判定される
「このメールが本当に (domain name) から送信されたものであるか確認できませんでした」といった趣旨の注意書きが表示される
確認事項
Gmailで受信したメールのソースを見ると「SPF」という項目があり、期待値は「PASS(正常)」であるが、それ以外の「Neutral」などになっている場合は、ソースに表示されている送信元のドメイン名が、SMTPサーバーのドメインと同一であるか確認する。例えば、SMTPサーバー名を"smtp.example.com"に設定済みなのに対し、受信したメールのソースでは"ppp.provider_name.com"のようにプロバイダ名が表示される場合は、SMTPサーバーのIPアドレスからドメイン名を逆引きした際に、プロバイダのドメイン名が結果として返されている。Gmailの視点に立つと、メールを送ってきたSMTPサーバーが名乗るドメインと、SMTPサーバーのIPアドレスから逆引きしたドメインが異なるため、SMTPサーバーがホスト名を偽装している可能性があることから迷惑メールと判定することになる。
対策
1. プロバイダ側で逆引きの設定画面を用意している場合があるので確認する
2. 上記の設定が不可能であれば、DNSのTXTレコードを設定することで対応ができる
smtp.example.com. IN TXT “v=spf1 +ip4:(ipv4のIPアドレス) +ip6:(ipv6のIPアドレス) include:_spf.google.com +all”
※"TTL"という設定項目があれば"30"で設定すると、30秒後に設定が反映される。設定が正常に完了した場合は、"86400"秒(1日)などに設定することで、DNSの更新頻度を減らしネットワークの負担を減らすことができる。
反映確認
再度Gmailにメールを送信し、SPFが「Pass」になっているか確認する。