IdeaValue

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 を置くと、そのドメインを名乗るメールはすべて受信側で拒否されます。
SPF・DMARCの設定方法|なりすましメール対策の基本 | IDEAVALU