先日、ホスティングサービスを利用されているユーザさんから連絡が入る。
「特定の相手からのメールが届かない」
現象としては、example.com からのメールは届くがexample.net からは届かないとのこと。
メールサーバのログを調べてみると、IPアドレスからこの2つは同じサーバから送信しているのではないかと予想。example.netからのメールはユーザのメールボックスへ配送されていないようです。
こちらのメールサーバではspf認証を実装していて、メールを送ってきたドメインに対しtxtレコードを参照します。spfがfail(認証に失敗)の場合は受信を拒否します。
2つのドメインのtxtレコードを参照すると
example.com
“v=spf1 +ip4:111.222.333.444 +ip4:111.222.333.555 ~all”
example.net
“v=spf1 +ip4:111.222.333.666 -all”
となっていました。この2つの違いはクオリファイヤ(チルダやマイナス)。
example.comは「111.222.333.444と111.222.333.555からメールを送りますが、場合によっては違うIPアドレスから送信することもあります」という設定で、
example.netは「111.222.333.666からメールを送ります、それ以外からの送信はあり得ません」という設定です。
しかし実際のところ111.222.333.777というIPアドレスからexample.netを称しメールを送っていたので、こちらのメールサーバでspf認証失敗の判定をしていたのです。
ドメインの管理者がSPFレコードを適切に設定しておかないと、spf認証を行っているメールサーバへメール配信が出来ない場合もある、という事が分かりました。
