SPF レコードには、ドメインに代わってメールを送信することを許可されているメールサーバーとドメインが定義されています。各ドメインには SPF レコードを 1 件だけ設定できますが、そのレコード内で、ドメインからメールの送信を許可する追加のサーバーやサードパーティを指定できます。
- 受信サーバーは SPF レコードをチェックして、貴社のドメインから送信されたように見えるメールが、貴社が承認したサーバーから送信されたものであることを確認します。
- SPF レコードには、検証が完了したメールの受信サーバー側での処理方法も指定されています。
SPF レコードの形式
SPF レコードは、タグと値のリストを含む書式なしテキストの行です。このタグは機構と呼ばれます。通常、値は 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 レコードで 1 つ以上のメールサーバーを承認します(例: 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 マクロを使用して、この説明をカスタマイズします。 |