新しいガイド:評判を損なわずに専用IPをウォームアップする方法。 続きを読む →
MigoSMTP
無料ツール

SPFレコードチェッカー

ドメインを入力すると、SPFレコードを表示し、DNS照会数を数えて、SPFが失敗する原因となるミスを見つけます。

  • 登録不要
  • ライブDNS照会
  • すべてのincludeをたどる

ドメインまたはメールアドレスを入力してください。

このチェックでは、現在DNSに公開されているレコードを確認します。特定のメッセージがSPFに合格したかどうかは検証しません。それを確認するには、メッセージのヘッダーを開き、Authentication-Results行を読んでください。DNSのキャッシュにより、最近の変更が反映されるまでに時間がかかることがあります。

SPFレコードの役割

SPF(Sender Policy Framework)は、ドメインがメール送信を許可するサーバーの一覧をDNSで公開する仕組みです。メッセージが届くと、受信サーバーはエンベロープ送信者(Return-Path、MAIL FROMとも呼ばれます)のドメインを確認し、そのドメインのSPFレコードを読み取ります。接続元のIPアドレスが一覧に含まれていればSPFは合格です。含まれていなければ、レコードが受信側の対応を指示します。

SPFは、受信者に表示されるFromアドレスを確認しません。そのため、メッセージがSPFに合格してもDMARCに失敗することがあります。2つのドメインが一致している必要があり、SPFだけではそれを保証できないからです。

レコードの読み方

SPFレコードはv=spf1で始まる1行のテキストで、左から右へ読まれる項目で構成されます。送信元IPに最初に一致した項目が結果を決定します。

項目意味
ip4:203.0.113.0/24, ip6:...固定のアドレスまたは範囲を許可します。DNS照会は発生しません。
include:example.netexample.net自身のSPFレコードが許可するものも許可します。照会が1回、さらにその中の照会も加算されます。
a, mxドメインのAレコードまたはMXレコードのアドレスを許可します。それぞれ照会が発生します。
redirect=example.netこのレコードを、example.netのレコードに置き換えます。別のドメインにすべてを判断させたい場合に使います。
exists:, ptr必要になることはまれです。ptrは標準仕様で非推奨となっており、使用すべきではありません。
-all, ~all, ?all, +all末尾の包括ルールです。拒否、ソフトフェイル、中立、すべて許可のいずれかを示します。+allは誰でもあなたになりすまして送信できてしまいます。

DNS照会数10回の上限

SPFの標準仕様(RFC 7208)では、受信側がレコードの評価に使えるDNS照会は最大10回です。include、a、mx、ptr、exists、redirectの各項目がそれぞれ数えられ、includeしたレコード内の照会もすべて加算されます。10回を超えると永続エラーとなり、受信側はこれを失敗として扱います。

原因として多いのは、複数のメールサービスを重ねて使うことです。マーケティングプラットフォーム、ヘルプデスク、CRM、メールプロバイダーを合わせると、上限の大半を使い切ることがあります。チェッカーは受信側と同じ方法ですべてのincludeをたどり、上限に対する照会数を表示するため、どの枝が負担になっているかがわかります。

標準仕様では、何も返さない名前への「ボイド」照会も2回までに制限されています。SPFレコードのないドメインを指すincludeは、そのため問題として数えられます。

有効な対処法:使っていないサービスを削除する、プロバイダーが安定した範囲を公開している場合はa、mx、includeをip4やip6の範囲に置き換える、メールの種類ごとに別のサブドメインから送信して、それぞれに独自のレコードを持たせる。

チェッカーが検出するミス

よく見かける問題は次のとおりです。チェッカーは、それぞれの問題を分かりやすい修正方法とともに報告します。

  • 同じドメインにSPFレコードが複数あります。受信側はこれをエラーとみなすため、レコードを1つにまとめてください。
  • +all で終わるレコード、または実際にメールを送信するドメインでの ?all。+all はインターネット上のすべてのサーバーを許可してしまいます。
  • all の記述がまったくなく、リストにないサーバーの判定結果が未定義になっています。
  • メカニズム名やIPアドレスのタイプミスにより、レコード全体が無効になっています。
  • SPFレコードのないドメインを指す include、または2つのレコードが互いを include し合うループです。
  • 遅く、信頼性が低く、非推奨の ptr メカニズム。
  • 1つの文字列として貼り付けた255文字を超えるレコード、または1回のDNS応答に収まらなくなったレコードです。

SPFに合格してもわからないこと

レコードが問題なしと表示されても、ポリシーの形式が正しいというだけです。特定のメッセージが通過した証明にはなりません。実際のメッセージを検証するには、ヘッダーを開いて Authentication-Results 行を読むか、メールヘッダーアナライザーに貼り付けてください。

メールが転送されると、転送サーバーのIPがお客様のレコードに含まれないため、SPFは失敗します。DMARCがSPFまたはDKIMのどちらかで認証を受け付けるのはこのためで、DKIMでもメールに署名すべき理由でもあります。

ソフトフェイルとハードフェイル、どちらにすべきか

~all(ソフトフェイル)と -all(ハードフェイル)はどちらも、送信者が許可されていないことを受信側に伝えます。実際には、多くの受信側はSPFを複数のシグナルの1つとして扱い、独自に判断します。失敗したメールの扱いを決めるのはDMARCです。多くの組織は、すべての送信元を洗い出している間は ~all を公開し、一覧が完成した時点で -all に移行します。どちらでも問題ありませんが、+all や all の欠落は避けてください。

チェッカーが確認する内容

  1. 1

    レコードを検出

    ドメインのルートにあるTXTレコードを読み取り、v=spf1 で始まるものを抽出します。レコードがない場合や、複数ある場合は警告します。

  2. 2

    DNSルックアップ数を集計

    受信サーバーと同じように、すべての include と redirect をたどり、ルックアップ数を上限の10回と照らし合わせて合計します。

  3. 3

    構文をチェック

    不明なメカニズム、無効なIPアドレスや範囲、どこにも通じない include、ループ、評価されない項目を調べます。

  4. 4

    リスクのある設定を警告

    +all や ?all、非推奨の ptr メカニズム、all の欠落、DNSで問題になるほど長いレコードについて警告します。

よくある質問

SPFレコードとは?

SPFレコードは、ドメインに設定するDNSのTXTレコードで、そのドメインとしてメールを送信できるサーバーを一覧にしたものです。受信サーバーは、メッセージが届いたときに、送信元のIPアドレスをこの一覧と照合します。

SPFの10回のDNSルックアップ制限とは?

SPFの評価で発生してよいDNSルックアップは最大10回です。include、a、mx、ptr、exists、redirect はすべてカウントされ、include したレコード内のルックアップも含まれます。10回を超えると、受信側は永続エラーを返し、そのドメインからのすべてのメッセージでSPFが失敗します。

include の数よりチェッカーのルックアップ数が多いのはなぜですか?

各 include は別のレコードを指し、そのレコードにも独自の include が含まれることがあります。チェッカーは受信側と同じ方法で、それらをすべてたどって合計します。include が4つのレコードでも、ルックアップが8回以上になることは珍しくありません。

SPFの permerror とは?

レコードを評価できなかったことを意味します。主な原因は、1つのドメインにSPFレコードが2つある、ルックアップが10回を超える、構文ミス、SPFレコードのないドメインを指す include のいずれかです。

SPFチェックに合格すれば、メールは受信トレイに届きますか?

いいえ。SPFはシグナルの1つにすぎません。受信側はDKIM、DMARCのアライメント、送信者の評判、苦情率、コンテンツも見ています。SPFへの合格は、高い到達率に必要な条件ですが、それだけでは十分ではありません。

チェックしたドメインは保存されますか?

照会は当社のサーバーで実行され、結果は約5分間保持されるため、同じチェックを繰り返してもDNS照会は繰り返されません。チェックはアカウントと紐づけられず、照会先のDNSサーバーを保護するため、ツールにはレート制限がかかっています。

レコードの作成や修正が必要ですか?

手順ガイドに沿って進めるか、ジェネレーターでルックアップ制限内に収まるレコードを作成してください。

SPFガイドを開く

数分で送信を始めましょう。

アカウントを作成し、ドメインを追加して、最初のメールを送信します。

無料で始める 営業に相談