SPF レコードの書き方
SPF は、自分のドメインからメールを送ってよいサーバーを宣言するレコードです。受信側はこれと実際の送信元を照合し、なりすましメールを見分けます。
メールを送ってよいサーバーを並べ、最後に all を付けた 1 行を TXT に登録します。
| 名前 | 種別 | 値 | TTL |
|---|---|---|---|
| @ (空欄) | TXT | v=spf1 include:_spf.example.net ~all | 3600 |
1 つのドメインに SPF は 1 本だけです。
こう書く
| 送信のしかた | 値 |
|---|---|
| メール送信サービスを 1 つ使う | v=spf1 include:_spf.example.net ~all |
| 送信サービスを 2 つ使う | v=spf1 include:_spf.example.net include:spf.example.org ~all |
| 受信サーバー (MX) から送る | v=spf1 mx ~all |
| 送信サービス + 自社の固定 IP | v=spf1 include:_spf.example.net ip4:203.0.113.10 ~all |
| メールを送らないドメイン | v=spf1 -all |
include の値は送信サービスが指定します。例: Google Workspace / Microsoft 365
各タグの意味
| 書き方 | 意味 | 参照回数 |
|---|---|---|
| v=spf1 | SPF の始まり。必ず先頭に 1 つ | 0 |
| a | このドメインの A / AAAA レコードのサーバーを許可 | 1 |
| mx | このドメインの MX (受信サーバー) を許可 | 1 |
| include:ドメイン | そのドメインの SPF に書かれたサーバーを許可 | 1 + 先の分 |
| ip4: / ip6: | IP アドレス (範囲は /24 などで指定) を許可 | 0 |
| redirect=ドメイン | このドメインの SPF として、別のドメインの SPF を使う | 1 + 先の分 |
| -all | それ以外は認めない (fail) | 0 |
| ~all | それ以外は疑わしい扱い (softfail) | 0 |
| ?all | それ以外は判定しない (neutral) | 0 |
参照回数は合計 10 回までです (RFC 7208 §4.6.4)。+all はすべてのサーバーを許可するので使いません。
よくある間違い
- ✕SPF を 2 本登録するv=spf1 の TXT が 2 本あると、両方とも無効になります。送信元が増えたら 1 本に include を足します。
- ✕参照回数が 10 を超えるinclude の先の include も数に入ります。超えると SPF 全体が無効です。使っていないサービスの include は消します。
- ✕all を途中に書くall より後ろは評価されません。
~allなどは必ず末尾に 1 つだけ書きます。
作る・確かめる
根拠: RFC 7208 (SPF)
よくある質問
~all と -all のどちらにしますか?
送信元をすべて洗い出せているなら -all です。漏れがありそうなら ~all から始め、確認できてから -all にします。
SPF だけでなりすましは防げますか?
SPF だけでは不十分です。DKIM と DMARC をあわせて設定すると、受信側がなりすましメールを隔離・拒否できるようになります。