SPFタグ:SPFレコードの構文
SPFレコード構文は、ディレクティブ、修飾子、メカニズムといういくつかの要素から構成されます。
ディレクティブはSPFレコード構文の最初の部分です。残りのレコードをどう解釈すべきかを示しています。SPFレコードには、次の3つのディレクティブを記述することができます。: v=spf1、a、 MXです。vディレクティブは、このレコードがSPFv1レコードであることを示します。a ディレクティブは、このレコードが SPFv2形式の認証失敗レポートであることを示します。mxディレクティブはドメインのメール交換サーバのリストを指定します。
修飾子は、DNSゾーンのどこにSPFレコードを置くかを指定します:exim4、enduser、_spf などです。これらの修飾子は、メール受信者がDNSレコードと照合するときに、SPF レコードを探す場所を指定します。
メカニズムは、SPFチェックに失敗したメールアドレスの処理方法を指定するために使用します。all、none、softfail、neutralize、rejectから選択できます。
● すべてのメカニズムは、SPFチェックを通過した送信者からのすべてのメールを受け入れます
● noneは、SPFチェックをパスした送信者からのすべてを拒否します
● softfailは、SPFチェックに失敗した送信者からのメールを受け付けますが、疑わしいものとしてマークします
● neutralは、あなたのドメインから送信されたメッセージを拒否も受け入れもしないことを示すもので、メッセージを受け入れるべきか拒否すべきかについて、基本的に「ノー・オピニオン」のスタンスです
● rejectはSPFチェックに失敗したメールを拒否します。
SPFレコード構文修飾子
SPFレコード構文の「修飾子」は、SPFレコードの範囲を示すのに役立ちます。これらは主に、特定のIPアドレスがあなたのドメインを代表してメールを送信することを許可されているかどうかを示すために使用されます。
修飾子 | 結果コード | 説明 |
+ | Pass | 否定的な意味を持たない唯一の修飾語。これは、ドメイン名のセキュリティレコードにエラーや警告がなく、安全であるとみなされることを示します。 |
- | Fail | ドメイン名のセキュリティレコードにエラーや警告が含まれており、安全であるとみなされないことを示します。 |
~ | Softfail | ドメイン名のセキュリティレコードにエラーや警告が含まれていることを示します。このエラーや警告は、そのドメイン名が安全であるとみなされることを妨げるものではありませんが、DNS解決に問題があるか、DNSトラストアンカーに関連するその他の問題があることを示している可能性があります。 |
? | Neutral | ドメインにSPFレコードがないか、そのレコードは構文的には正しいが、そのドメインの信頼できるIPアドレスのリストにある1つ(またはそれ以上)の送信サーバと照合したときに、どの送信サーバにも一致しなかったことを示します。 |
SPFレコード構文メカニズム
メカニズムは、SPFレコード構文で使用され、どのような認証メカニズムを使用す るべきかを受信サーバに伝えます。メカニズムには2種類あります。
● 送信者が特定のメカニズム・セットを指定することができる
● すべてのメカニズムが許可されるように指定することもできる
メカニズム | 目的 | 指令が適用される場合 | 実装 |
a | 認可されたドメインの DNS A レコードを定義します。この指令が指定されていない場合は、現在のドメインが使用されます。
| 送信者のIPアドレスを含むドメインのAまたはAAAAレコードを照会したときに適用できる。 | a a/<prefix-length> a:<domain> a:<domain>/<prefix-length> |
all | allの指令は常にマッチし、他のすべてのソースに対するポリシーを定義します。 | このメカニズムは常に適用されるべきであり、このメカニズムは常にマッチします。 | all |
exists | Aレコードが指定されたドメインに対して有効かどうかをチェックします。そのドメイン上のすべてのAレコードを調べ、SPFレコードで設定された条件に一致するものがあるかどうかを確認することで動作します | 当該ドメイン上にAレコードが存在するか、RFC7208に従った他の条件が承認された場合に適用されます。 | exists:<domain> |
include | この仕組みの目的は、ドメインを指定してマッチを検索することと、ドメインに有効なSPFレコードがない場合に恒久的なエラーを返すことです。 | SPFレコードの "include "メカニズムを使って、あるドメインのレコード内に他のSPFレコードを含めることができます。あるドメインがSPFレコードを持たず、他のドメインがSPFレコードを持ち、その他のドメインが送信者のIPアドレスと一致するIPアドレスを持つ場合、"include "メカニズムにより、一致するIPアドレスを持つドメインが認可の目的で使用されます。
| include:<domain> |
ip4 | IPv4の範囲は、"ip4 "ディレクティブと、範囲の長さを示すプレフィックスで指定できます。プレフィックスを指定しない場合は、/32 とみなされます | ip4メカニズムが適用されるのは、以下の条件のいずれかが真である場合です:
- 指定されたIPv4アドレスがSPFレコードのIPアドレスと一致する。
- 指定されたIPv4サブネットに送信者のIPアドレスが含まれている。 | ip4:<ip4-address> ip4:<ip4-network>/<prefix-length> |
ip6 | IPv6の範囲は、"ip4 "ディレクティブで、範囲の長さを示すプレフィックスとともに指定することができます。プレフィックスが指定されない場合は、/128 とみなされます。 | ip6メカニズムが適用されるのは、以下の条件のいずれかが真である場合です:
- 指定されたIPv6アドレスがSPFレコード内のIPアドレスと一致する。
- 指定されたIPv6サブネットに送信者のIPアドレスが含まれている。. | ip6:<ip6-address> ip6:<ip6-network>/<prefix-length> |
mx | SPFレコードで定義されている "mx "メカニズムは、ドメインのドメインネームシステム(DNS)Mail Exchanger(MX)レコードを認可されたものとして定義します。. | DNS MXレコードは、ドメインに代わって電子メールメッセージを受け付けるサーバを決定します。DNS MXレコードには、メッセージの受信に使用できる各サーバのIPアドレスと優先順位値が含まれています。
あるドメインのMXレコードに、送信者のIPアドレスと一致するIPアドレスが含まれている場合、この送信者はこのドメインを代表してメールを送信する権限があることを示します。 | mx mx/<prefix-length> mx:<domain> mx:<domain>/<prefix-length> |
ptr | ptrメカニズムは、送信IPアドレスの逆ホスト名またはサブドメインを使用して、ターゲット・ドメイン名を定義します。 | 照会または指定されたドメインに少なくとも1つのMXレコードがあり、そのMXレコードに送信者のIPアドレスのFQDNを持つPTRレコードが含まれている場合にのみ適用されます。 | ptr ptr:<domain> |
SPFレコード構文修飾子
SPFレコード構文では、SPFレコードのデフォルトの動作を変更するために修飾子を使うことができます。修飾子はルールの例外を指定するために使われたり、受信者に追加情報を提供するために使われたりします。
修飾子 | 目的 | 実装 |
exp | exp 修飾子は、メッセージが拒否された理由の説明を指定する値です。これは、送信者がある種の問題を避けるのを助けるためのもので、受信サーバにメッセージが受け入れられなかった具体的な理由を知らせるために使うことができます。 | exp=<domain> |
redirect | redirect 修飾子は、SPFレコードのドメイン名全体を置き換える文字列です。この修飾子の目的は、ドメインに送信されるすべてのメールを別のサーバにリダイレクトすることです。これは、複数のMXレコードを持つドメインや、他社に再割り当てされたが同じメールアドレスを使用しているドメインに便利です。 | redirect=<domain> |