SPFレコードはDNSサーバにtxtレコードとして追加する。SPFレコードにはIPアドレスまたはドメインを設定し、設定されたIPアドレスもしくは指定したドメインから解決できるIPアドレスがそのドメインから送信許可されたものとして判定される。
基本的な書き方
SPFレコードの基本的な書き方は以下となる。
v=spf1 a ~all
先頭のv=spf1と末尾の~allは基本的に必要で、その間に許可するホスト・ドメインの設定(機構)を半角スペース区切りで追加する。
aはそのドメインに登録されたホスト全てからの送信を許可するという意味になる。
a:example.comのように別のドメインも指定できる。
特定のIPアドレスを許可する場合は以下となる。
v=spf1 ip4:192.168.0.0.1 ~all
IPアドレスはCIDR表記が可能であり範囲が指定できる。ただし、あまり範囲が広いと迷惑メールと判定される恐れがある。
v=spf1 ip4:192.168.0.0/24 ~all
許可する設定(機構)は複数指定可能であり、その場合は以下のようになる。
v=spf1 a:example.com ip4:192.168.0.1 ip4:172.16.0.1 ~all
外部メールサーバの使用
外部のメールサーバを使用する場合はmxを指定する。これは指定されたドメインのmxレコードに設定されたメールサーバを許可する設定になる。ドメインを省略するとそのドメインのmxレコードを許可する。
v=spf1 mx:example.com ~all
また、別ドメインのSPFレコードの設定を参照することもできる。この場合はincludeを指定する。
v=spf1 include:example.com ~all
Amazon SESを使用する場合は以下のように設定する。
v=spf1 include:amazonses.com ~all
設定の確認
設定を確認するには、Windowsの場合はコマンドプロンプトを開いて以下のコマンドを実行する。
nslookup -q=txt example.com
その他、注意事項
- SPFレコードはドメインに1つしか設定できない。
- SPFレコードは255文字以下とする。それを超える場合は改行する必要があり注意が必要。
- 先頭に限定子として"+"(合格)や"-"(失敗)や"~"(弱い否定)を指定できるが、なにも指定しなければ"+"(許可)として判定される。省略しない場合はv=spf1 +a ~allのようになる。