先日、ある独自ドメインからGmail宛てにメールを送っても不達となってしまっていることに気が付きました。しかも、なんとGmailの迷惑メールフォルダに入ることすらなく、それより前の段階で拒否されていたようです。リターンメールも何もない。これではなかなか気が付けない。
結論から言うとSPF関連の設定がまずかったのが原因。
以前は届いていたので大丈夫だったのですが、いろいろログなど調べて総合的に考えると、つい最近というか、どうも今年(2022年)に入ってからSPF対応してるかどうかをGmail側が厳しく見るようになった感じです。
実行した対策
サーバのDNSレコードをいじって、SPF関連のTXTレコードを追加。
その後ThunderbirdからGmail宛てにメールを送ってみたら無事に受信できました。
よし、これでもう大丈夫だ…と思ったのですが、私が管理している某Webシステム(PHPで作成)から送ったメールがGmailに届いていないことにも気が付く。例によって迷惑メールフォルダにすら入ってない。それよりも前段階でBANされている。
PHPのmb_send_mailの設定に何か問題があるのだろうな…と、当たりはついたので、ググって以下のサイトを発見。
【参考サイト】迷惑メールにならないためのエンジニアにできる最大限の対応。php mb_send_mailからSPFとDKIMとDMARC – Qiita
なんと第5引数があるとは知りませんでした!
-fからスペースなしでfromメールアドレスを記述するパラメータを付与する必要がある。
https://qiita.com/f_uto/items/aa8a3ab915fb09b97256
おおお、なんか直感的ではなく、ややこしいですね。スペース無しは視認性悪いなぁ。
しかし、おかげさまでこのサイトの指示通りにmb_send_mailの引数を設定したら、無事にメールヘッダの「Received-SPF: pass」となり、Gmailさんにも受け入れてもらえるメールとなりました。
あなたの管理ドメインやサービスも今すぐSPF対応を!
私の運営ドメインではDKIMとDMARCについては一切対応してませんが、今のところGmailには怒られないようです。Webサービス等を運営している皆様におかれましては、まずはSPF対応を一刻も早く実施していただければと思います。Gmailでの利用者は多数いると思いますので、今後SPF対応していないサイト(ドメイン)には甚大な影響が出ると思われます。
そしてPHPのmb_send_mailをお使いの方は、第五引数まで含めてきっちり正しく設定しましょう!
※注:上記引用サイト様では「Sender」に関する記載が間違っていると思われますのでご注意ください。「Sender」には「to」ではなく「from」を記載するはずです。Sender=送信者、という意味ですので。
2024年2月1日 追記
世の中の趨勢的に、現在はDKIMとDMARCへの対応も必須となっています。本日(2024年2月1日)より、GmailやYahooメールなど各大手サービスにおいてDKIMとDMARCに対応してないメールは迷惑メール扱いとなり、到達しないことが予想されます。ですから必須です。
メールサーバやWebサービス、ドメインなどの管理者さんたちは、今すぐDKIMとDMARCへの対応をしてください。今すぐっていうか、昨日(2024年1月31日)までにやっておかないといけなかったんですけどね。
私が契約している複数のレンタルサーバーでもDKIMとDMARCへの対応が発表されています。最も設定しやすく楽チンだったのはXserverですね。特に知識も必要なく超簡単な操作だけで設定が完了しました。ほぼ自動みたいなものでした。
coreserver(昔からある旧来型のほう)はちょっと面倒でした。手動でやるべき作業があり、知識がない人は手間取ったり、上手く行かなかったりするかもしれません。
コメント