メールが届かない?SPF(Sender Policy Framework)についての誤解
SPFとは、「Sender Policy Framework」の略で、電子メールの送信者偽称を防ぐ送信ドメイン認証技術です。
まず、SPFがDNSに未設定だといって、メールが届かないというのは、よほどじゃないとあり得ません。
論理的には、SPFの未設定を拒否することは可能ですが、拒否すると事実上メールがつかえなくなるので、企業の情シスで頭おかしい奴ぐらいしかそういう設定しません。
ただし、SPFを未設定の場合は、迷惑メールとしてマークするサーバは増えてます。
問題となるのは、SPFの誤設定です。
SPFは、どのSMTPサーバから送るかを通知します。
このため、通知してないサーバから送ると、未設定より始末がわるく拒否される可能性が高くなります。(それでも普通は拒否しない)。まあ、これも迷惑メール行きです。
ころが、SPFを正しく設定していてかつ正しく通知してるサーバからの送信でも、拒否されるパターンがあります。というかこのパターンは、こちら側のSPF設定に無関係にやばい。
それは、EnvelopeFromの設定ミスです。
SPFを、チェックする受信サーバ(相手側)は、まず、SMTP接続された時に、ヘッダでSPFのチェックをします。
ヘッダには、送信者のFromは入ってません。
なので、EnvelopeFromをチェックするのです。
そのとき、EnvelopeFromのドメイン名で、DNSのSPFをチェックにするのですがここが、www.localとか存在しないドメインになっていると、そこで、チェックをやめて、迷惑メールにする場合があります。
また、最初にチェックするのは、送信者のFromではなく、EnvelopeFromなのです。
Fromじゃないのです、送信者の詐称を防ぐのに、Fromじゃないというちょとここでややこしいことになるので。説明は避けます。
結論は、SPFを、正しく設定して、かつ、FromとEnvelopeFromのドメイン名を同じにするのが手っ取り早いのです。