SPFレコードチェック:このドメインの名前でメールを送れるのは誰?

SPFは、ドメインが自分のメールの送信を許可するサーバーを列挙するDNSレコードです。SPFがない場合や、壊れている・許可範囲が広すぎる場合は、そのドメインの名前で偽のメールを送りやすくなります。ドメイン、メールアドレス、またはリンクを入力すると、そのSPFを読み取って説明します。

使い方

  1. 確認したいドメインを入力するか、メールアドレスやリンクを貼り付けてください。使うのはそのドメインだけです。
  2. 「SPFを確認」を押します。受信側のサーバーと同じように、SPFレコードを読み取り、各includeをたどります。
  3. レコードの末尾とルックアップ回数を確認します。望ましいのは、末尾が「-all」か「~all」で、ルックアップが10回以下であることです。

各結果の意味

このドメインにはSPFがありません
どのサーバーがメールを送信できるかを示していないため、なりすましが容易になります。ご自身のドメインであれば、SPFレコードを公開してください。
SPFレコードにエラーがあります
受信側のサーバーはこのレコードを適用できないため、そのドメインにはSPFがないものとして扱われます。何が問題なのかは、下に表示されている項目でわかります。
誰でもこのドメインの名前でメールを送れます
レコードの末尾が「+all」で、世界中のすべてのサーバーを許可しています。この設定では、SPFは何も守りません。
SPFがドメインを十分に守っていません
リストにないサーバーをどう扱うかがレコードで指定されていないため、このドメインの名前で送られた偽のメールに疑わしいという印が付きません。
SPFは正しく設定されています
このドメインは、メールを送信できるサーバーを列挙し、それ以外は疑わしいものとして扱うか拒否するよう受信側に求めています。ただし、SPFだけではなりすましは防げません。受信側にどう対処するかを伝えるのはDMARCです。

各検出項目の意味

  • このドメインはSPFレコードを公開していません。
  • ドメイン(このドメイン、またはincludeされたドメイン)がSPFレコードを複数公開しています。1つしか認められないため、受信側はエラーとして扱います。
  • レコードに書き方の誤った項目があるため、受信側はエラーとして扱います。
  • すべてのincludeを含めると、レコードに必要なDNSルックアップが10回を超えます。10回を超えると、受信側はエラーとして扱います。
  • includeの参照先ドメインにSPFレコードがないため、受信側はこのレコードをエラーとして扱います。
  • includeが循環しています。あるドメインが最終的に自分自身をincludeしています。
  • 末尾が「+all」です。世界中のどのサーバーでも、このドメインの名前でメールを送信できます。
  • 末尾が「?all」です。リストにないサーバーについて何も指定していないため、保護になりません。
  • 末尾が「~all」です。他のサーバーからのメールは疑わしいものとしてマークされますが、拒否はされません。最も一般的な設定です。
  • 末尾に「all」がないため、リストにないサーバーは中立の結果になり、保護されません。
  • 「ptr」を使っています。処理が遅く、標準で使用が推奨されていない仕組みです。多くの受信側はこれを無視します。
  • メッセージごとに変わるマクロ(%を含む項目)を使っているため、その部分はたどれず、実際のルックアップ回数はさらに多い可能性があります。

対象の国

どの国のドメインにも使えます。受信側のサーバーと同じ方法(RFC 7208)でレコードを読み取り、メカニズム、末尾の指定、最大30回のルックアップまでのすべてのincludeとredirect、上限10回に対するDNSルックアップの回数を確認します。

読み取るのは、ドメインの公開DNSレコードです。メールアドレスやリンクを入力した場合でも、ブラウザから送信されるのはそのドメインだけです。調べたドメインは保存されません。

よくある質問

SPFとは何ですか?

Sender Policy Frameworkの略で、ドメインが自分のメールの送信を許可するサーバーを列挙したDNSレコードです。メッセージを受信したサーバーは、それを届けたサーバーがそのリストに含まれているかを確認します。

「-all」と「~all」はどちらがよいですか?

「-all」は、リストにないサーバーからのメールを拒否するよう受信側に求め、「~all」は疑わしいものとしてマークするよう求めます。どちらも保護になり、多くのドメインは「~all」を使って、どう対処するかの判断をDMARCに任せています。「+all」と「?all」は保護になりません。

なぜルックアップの上限10回が重要なのですか?

include、a、mx、ptr、exists、redirectはどれも、受信側のサーバーにDNSへの問い合わせを発生させます。レコード全体で10回を超えるとエラーとして扱われ、SPFが機能しなくなります。使わなくなったサービスを削除するか、プロバイダーにもっとシンプルなincludeを依頼してください。

SPFだけで偽のメールを防げますか?

いいえ。SPFが確認するのは隠れたエンベロープ送信者で、「差出人」に表示されるアドレスではありません。この2つを結び付け、チェックに失敗したメールを隔離または拒否するよう受信側に求めるのがDMARCです。ドメインのDMARCも確認してください。