SPF レコードは、ドメインに代わってメールを送信できるメールサーバーとドメインを定義します。各ドメインには SPF レコードを 1 件だけ設定できますが、そのレコード内で、ドメインからメールの送信を許可する追加のサーバーやサードパーティを指定できます。
- 受信サーバーは SPF レコードをチェックして、組織のドメインから送信されたように見えるメールが承認済みのサーバーから送信されたものであることを確認します。
- SPF レコードには、検証が完了したメールの受信サーバー側での処理方法も指定されています。
SPF レコードの形式
SPF レコードは、タグと値のリストを 1 行の書式なしテキストで表したものです。このタグは機構と呼ばれます。値は通常、IP アドレスとドメイン名です。
SPF レコードは、DNS TXT レコードの形式でドメイン プロバイダに追加されます。詳しくは、TXT レコードについてをご覧ください。
SPF レコードの最大文字数は 255 文字です。TXT レコードのファイルサイズは 512 バイト以下にする必要があります。
IP アドレスについて理解する
IP アドレスは、デバイスを識別してインターネットに接続するために使用されます。IP アドレスを使用すると、パソコン、モバイル デバイス、サーバーなどのデバイスが互いに通信できます。メールを送受信するサーバーは、一意の IP アドレスで識別されます。ドメインの SPF レコードには、ドメインに代わってメールを送信するサーバーの IP アドレスが必要になる場合があります。
- IP バージョン 4(IPv4)のアドレスの例: 203.0.113.42
- IP バージョン 6(IPv6)のアドレスの例: 2001:db8:14:5:1:2:bf35:2610
IP アドレスは通常、ブロック単位でネットワークに割り当てられます。スラッシュ(/)付きの IP アドレスは、IP アドレスのブロックを示しています。
- IPv4: 192.0.2.0/24
- IPv6: 2001:db8:1234::/48
SPF レコードで IP アドレス ブロックを使用すると、SPF レコードはブロック内のすべての IP アドレスに適用されます。
SPF レコードの機構
この表の機構を使用して、SPF レコードを作成します。受信メールサーバーは、SPF レコードにリストされた順で機構に対してメールを検証します。
留意点:
- 機構では、省略可能な SPF レコード限定子(後述)を使用できます。
- SPF の TXT レコードでは、他のドメインまたはサーバーへの参照が 10 回を超えないようにする必要があります。これらの参照はルックアップと呼ばれます。詳しくは、SPF レコードの DNS ルックアップを確認するをご覧ください。
| メカニズム | 説明と値 |
|---|---|
| v |
(必須)SPF のバージョンです。このタグはレコードの最初のタグにする必要があります。この機構は v=spf1 にする必要があります。 |
| ip4 |
メールサーバーを IPv4 アドレスまたはアドレス範囲で承認します。この値は、次のように標準形式の IPv4 アドレスまたはアドレス範囲である必要があります。ip4:192.168.0.1 または ip4:192.0.2.0/24。 |
| ip6 |
メールサーバーを IPv6 アドレスまたはアドレス範囲で承認します。この値は、次のように標準形式の IPv6 アドレスまたはアドレス範囲である必要があります。ip6:3FFE:0000:0000:0001:0200:F8FF:FE75:50DF または ip6:2001:db8:1234::/48。 |
| a |
メールサーバーを次のようにドメイン名で承認します。a:example.com |
| mx |
メールサーバーを次のようにドメインの MX レコードで承認します。mx:mail.example.com。 この機構が SPF レコードにない場合、デフォルト値は SPF レコードが使用されているドメインの MX レコードです。 |
| include |
サードパーティのメール送信元を次のようにドメインで承認します。include:servers.mail.net |
| すべて |
すべてのメッセージが照合されることを指定します。この機構を必ず SPF レコードに含めることをおすすめします。 この機構は、SPF レコードの最後に配置する必要があります。SPF レコードの all の後に続く機構はすべて無視されます。 ~all と -all について
ヒント: メール送信に使用していないドメインのなりすましを防ぐには、ドメインの SPF レコードとして vspf1 ~all を使用します。 |
| exists |
SPF レコードの exists 機構で指定されたドメインに対して A クエリを実行します。結果が見つかると、ドメインが解決され、認証が成功します。ドメインが解決されない場合、認証は失敗します。 |
SPF レコードの限定子
限定子は、SPF レコード内の任意の機構に追加できる省略可能な接頭辞です。機構の値が一致する場合に、メールを認証済みとみなすかどうかを受信メールサーバーに指定します。次に例を示します。
v=spf1 include:_spf.google.com ~all
機構は SPF レコード内の順に検証されます。機構に限定子がなく、機構が一致する場合、認証のデフォルトの処理は「Pass」です。機構が一致しない場合、デフォルトの処理は「Neutral」です。メールの認証結果は合格、不合格のどちらでもありません。
これらの省略可能な限定子を使用して、SPF レコードの機構が一致するメールの処理方法を受信メールサーバーに指定します。
| 修飾子 | 一致した場合の受信サーバーでの処理 |
|---|---|
| + | Pass。一致する IP アドレスを持つサーバーは、ドメインに代わってメールを送信できます。メールは認証されます。これは、機構で限定子を使用しない場合のデフォルトの処理です。 |
| - | 認証に失敗します。一致する IP アドレスを持つサーバーは、ドメインに代わってメールを送信できません。SPF レコードに送信サーバーの IP アドレスまたはドメインが含まれていないため、メールは認証に合格しません。 |
| ~ | SoftFail。一致する IP アドレスを持つサーバーは、ドメインに代わってメールを送信できない可能性があります。通常、そのようなサーバーからのメールは受信側のサーバーで受け入れられますが、不審なメールとして扱われます。 |
| ? | Neutral。認証結果が合格、不合格のどちらでもありません。ドメインに代わってメールを送信できる IP アドレスであることが、SPF レコードに明示されていません。通常、中立的な結果の SPF レコードには ?all が使用されます。 |
SPF レコードの限定子(詳細)
SPF 修飾子は、SPF レコードのテキスト文字列の末尾に表示される、= で区切られた名前と値のペアです。修飾子は、追加情報、ルールの例外、デフォルトからのバリエーションを指定します。たとえば、次の SPF レコードでは、include メカニズムを使用して Google の SPF レコードを確認し、redirect 修飾子を使用して別のドメインの SPF レコードを参照しています。
v=spf1 include:_spf.google.com redirect=example.com
| 修飾子 | 説明 |
|---|---|
| リダイレクト |
認証のために別のドメインの SPF レコードにリダイレクトします。複数のドメインで同じ SPF レコードを使用する場合は、redirect 修飾子を使用します。 redirect 修飾子は、影響を受けるすべてのドメインを管理している場合にのみ使用します。管理していないドメインの場合は、include メカニズムを使用します。SPF レコードで all 機構を使用している場合、redirect 修飾子は無視されます。 |
| exp |
SPF に失敗した理由として表示されるカスタム メッセージを指定できます。SPF レコードに Fail または SoftFail の限定子が含まれている場合にのみ使用できます。この修飾子は、失敗の説明を含む TXT レコードへの DNS ルックアップを有効にします。SPF マクロを使用して、この説明をカスタマイズします。 |