SPF・DMARCの設定方法:独自ドメインのなりすましメール対策
執筆:IDEAVALU運営 · 更新:
SPF と DMARC がないと、誰でもあなたのドメインを名乗ってメールを送れてしまい、受信側も見分けられません。サービスの通知メールが迷惑メールに入りやすくなる原因にもなります。
SPF と DMARC の役割
SPF は「このドメインのメールを送ってよいサーバー」を DNS で宣言します。DMARC は、SPF や DKIM(電子署名)の確認に失敗したメールを、受信側でどう扱うか(何もしない・迷惑メールにする・拒否する)を宣言します。
Gmail は 2024年から、送信者に SPF か DKIM を、1日に大量のメールを送る送信者には SPF・DKIM・DMARC のすべてを求めています。
自分で確認する方法
DNS の TXT レコードを表示します。v=spf1 と v=DMARC1 で始まる行があれば設定されています。
SPF(macOS・Linux)
dig +short txt example.com
DMARC(macOS・Linux)
dig +short txt _dmarc.example.com
Windows の場合
nslookup -type=txt _dmarc.example.com
DKIM も設定する
この診断では DKIM を確認していません(公開鍵の場所がサービスごとに違うため)。メール配信サービスの管理画面に表示される DKIM 用の DNS レコードもあわせて設定してください。
直し方
SPF
DNS に SPF レコード(TXT)を1つだけ追加します。メールを送るサービスごとに include を足します。
メールを送らないドメイン
TXT @ "v=spf1 -all"
Google Workspace で送る場合
TXT @ "v=spf1 include:_spf.google.com ~all"
Brevo・SendGrid・Resend などの配信サービスを使う場合は、各サービスの管理画面に表示される include を追加してください。SPF レコードが2つあるとエラーになります。
DMARC
_dmarc に TXT レコードを追加します。最初は p=none で状況を見て、問題がなければ quarantine → reject と強めます。
まず様子を見る
TXT _dmarc "v=DMARC1; p=none; rua=mailto:dmarc@example.com"
メールを送らないドメイン
TXT _dmarc "v=DMARC1; p=reject"
よくある質問
- メールを送らないドメインでも設定したほうがよいですか?
- 設定をおすすめします。v=spf1 -all と p=reject の DMARC を置くと、そのドメインを名乗るメールはすべて受信側で拒否されます。