Domain IP Lookup

SPFレコード確認:SPFレコードは正しく動作している?

メールが迷惑メールフォルダーに入る、あるいはサービスからSPFが無効だと言われた。そんなときは、下にドメインを入力してください。このチェッカーはSPFレコードを取得し、すべてのincludeをたどり、DNSルックアップを上限の10回と照らして数え、修正すべき点を平易な言葉で一覧にします。

例:

受信サーバーはSPFレコードをどう使うか

メッセージが届くと、受信サーバーはエンベロープ送信者のドメインを確認し、そのドメインのSPFレコードを取得します。これはv=spf1で始まるTXTレコードです。次に、今接続してきたサーバーのIPアドレスが、そのリストに含まれているかを確認します。結果はpass、fail、softfail、neutralのいずれかで、受信側は他のシグナルと合わせて評価し、メッセージを受信トレイに入れるか迷惑メールフォルダーに入れるかを決めます。

SPFが確認するのは、メールアプリで人が目にするFromアドレスではなく、エンベロープ送信者です。このずれを埋めるのがDMARCの役割です。

SPFの項目の早見表

項目役割
ip4:192.0.2.0/24IPv4アドレスまたは範囲を許可する
ip6:2001:db8::/32IPv6アドレスまたは範囲を許可する
aドメイン自身のAレコードとAAAAレコードのアドレスを許可する
mxドメインのメールサーバーのアドレスを許可する
include:_spf.example.netそのドメインのSPFレコードが許可するものも、あわせて許可する
exists:nameその名前のDNS検索でアドレスが返る場合に許可する
ptr非推奨。逆引きDNSで照合するため、使うべきではない
allすべてに一致するため、最後に置き、既定の結果を決める

項目の前に付く修飾子は、一致したときの結果を決めます。+はpass(既定)、-はfail、~はsoftfail、?はneutralです。よく使われる末尾は、記載のない送信者を疑わしいものとして扱う~allと、受信側に拒否を求める-allです。

サービスを1つ追加しただけでSPFが壊れる理由

SPFでは、レコードの評価中にDNSルックアップを発生させる項目は、最大10個までです。include、a、mx、ptr、existsが数えられ、redirectモディファイアも同様です。ip4、ip6、allは数えられません。includeされたレコード内のルックアップも、同じ合計に加算されます。

正常だったレコードがだめになるのは、このためです。ニュースレターツール、ヘルプデスク、CRM、請求システムを追加すると、それぞれが自分のincludeを持ち、その中にさらにincludeを含むものもあります。10を超えると、SPFは永続的なエラーを返します。すると受信側は、すべてのメッセージを、そのドメインにSPFがないものとして扱うことがあり、誰もそれを知らせてくれません。

  • 使っていないサービスのincludeを削除します。
  • プロバイダーのアドレスが安定しているなら、includeをip4とip6の範囲に置き換えます。
  • ptrは絶対に使わないでください。
  • 可能であれば、送信サービスごとに専用のサブドメインを割り当てます。名前ごとに、それぞれ10回の上限が適用されます。
  • includeをアドレスに展開(フラット化)する場合は、プロバイダーが範囲を変更することを忘れないでください。フラット化したレコードは、定期的な更新が必要です。

SPFポリシーを安全に設定する方法

  • 名前ごとに、SPFレコードをちょうど1つだけ公開します。2つあると永続的なエラーになります。
  • 正規の送信者がすべて記載されていることを確認する間は~allにしておき、確信が持てたら-allに移行します。
  • SPFは継承されないことを覚えておいてください。メールを送信するサブドメインには専用のレコードが必要で、メールを送信しないサブドメインはv=spf1 -allを公開できます。
  • SPFは、DKIMとDMARCポリシーと組み合わせてください。それぞれが、他の弱点を補います。

よくある質問

ガイド