SPF / DKIM / DMARC 完全入門【2026年版】
2024年2月以降、Gmail と Yahoo! Mail がメール送信者認証を 事実上の必須要件 としました。月5,000通以上の一括送信ドメインは SPF/DKIM/DMARC の3点セットを必須化、未対応のメールは段階的に拒否されています。本記事では、これら3技術の役割を最短で理解し、自社ドメインに適用するまでの手順をまとめます。
目次
1. なぜ今メール認証が必須なのか
フィッシング攻撃の98%は 送信元偽装(spoofing) を伴います。受信側プロバイダは「正規ドメインからの送信であるか」を SPF/DKIM/DMARC で機械的に検証し、未認証メールを迷惑フォルダや拒否扱いにします。Gmail と Yahoo! の新ガイドラインに対応していないと、メルマガ・通知メール・パスワードリセットといった 業務メールが届かなくなる 可能性があります。
2. SPF (Sender Policy Framework)
「このドメインの正規送信元は どの IP アドレス/ホスト か」を DNS の TXT レコードで宣言します。受信側は MAIL FROM アドレスのドメインを照会し、送信元 IP が許可リストに含まれるかを検証します。
example.com. IN TXT "v=spf1 include:_spf.google.com include:sendgrid.net ip4:203.0.113.10 ~all"
主要メカニズム
include:— 他ドメインの SPF を取り込む(SaaS送信時の定番)ip4:/ip6:— 自社配信サーバの IP を直接列挙a/mx— A/MX レコードの IP を許可~all— それ以外は SoftFail(未許可だが拒否しない)-all— それ以外は HardFail(明示的に拒否)
注意点
- 10 ルックアップ制限 — DNS 参照が10回以下になるよう
includeをネストしすぎない - SPF レコードは1ドメインに 1つだけ 。複数あると無効になる
- 転送メールは SPF が壊れる(エンベロープが変わるため) → DKIM で補完が必須
SPFチェッカー で設定状況を確認できます。
3. DKIM (DomainKeys Identified Mail)
送信メールに 電子署名 を付け、受信側が公開鍵で検証します。改ざん検出と送信者認証を同時に実現できる、現代メール認証の中核技術です。
selector1._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4..."
セレクタとは
selector1 の部分は任意の識別子で、鍵のローテーション に使います。新旧の鍵を 20260101._domainkey のように年月で命名し、3〜6ヶ月で交換するのが推奨運用。
鍵長
2026年は 2048bit RSA を最低基準。1024bit はもはや非推奨です(Yahoo!は1024bitを失格扱いに移行中)。
DKIMチェッカー でセレクタを指定して取得できます。
4. DMARC とポリシー
SPF / DKIM の 認証失敗時のポリシー を宣言し、受信側に「どう扱ってほしいか」を伝えます。SPF/DKIM単体の脆弱性(ヘッダFromの偽装)を補完する役割。
_dmarc.example.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com; pct=100; aspf=r; adkim=r"
ポリシー (p=)
p=none— 監視のみ。最初は必ずここから始めるp=quarantine— 迷惑メールフォルダへ振り分けp=reject— 受信を拒否(最強)
主要タグ
rua=— 集計レポート(aggregate)送信先。最低1つ必須ruf=— 個別レポート(forensic)送信先。プライバシー上設定しないこともpct=— 適用比率(段階移行用)aspf=/adkim=— Strict(s) / Relaxed(r)
DMARCチェッカー で確認できます。
5. 導入フロー (推奨)
- すべての送信源(自社サーバ・SendGrid・MailChimp・Salesforce等)を棚卸し
- SPF を全送信源を網羅して設定 —
~allから始める - DKIM 鍵を生成・公開し、各送信源で署名を有効化
- DMARC を
p=none; rua=でレポート収集開始 - 1〜2ヶ月レポートを観察し、見落とし送信源を吸収
p=quarantine; pct=10→ 25 → 50 → 100 と段階強化- 最後に
p=rejectへ昇格
6. Postfix での DKIM 設定例 (OpenDKIM)
# /etc/opendkim.conf Domain example.com KeyFile /etc/opendkim/keys/example.com/selector1.private Selector selector1 Socket inet:8891@localhost # /etc/postfix/main.cf milter_protocol = 6 milter_default_action = accept smtpd_milters = inet:localhost:8891 non_smtpd_milters = inet:localhost:8891
鍵生成:
opendkim-genkey -b 2048 -d example.com -s selector1 -D /etc/opendkim/keys/example.com/ # selector1.txt の内容を DNS の TXT レコードに登録
7. Google Workspace での設定例
- 管理コンソール → アプリ → Google Workspace → Gmail → メール認証
- 「新しいレコードを生成」で 2048bit を選択
- 表示された TXT 値を
google._domainkey.example.comに登録 - DNS 反映後(数分〜数時間)、コンソールで「認証を開始」
- SPF:
"v=spf1 include:_spf.google.com ~all"を設定
8. DMARC レポートの読み方
rua= 宛に毎日 ZIP 添付の XML が届きます。中身は受信プロバイダごとに集計された認証結果。
<record>
<row><source_ip>203.0.113.10</source_ip><count>42</count>
<policy_evaluated><disposition>none</disposition>
<dkim>pass</dkim><spf>pass</spf></policy_evaluated></row>
<identifiers><header_from>example.com</header_from></identifiers>
</record>
そのままでは読みにくいので、Postmark / dmarcian / EasyDMARC などの可視化サービスを併用するのが実用的です。
9. BIMI (発展)
Brand Indicators for Message Identification の略。DMARC を p=quarantine 以上で運用しているドメインは、メール一覧に 自社ロゴ を表示できる仕組み。Gmail/Apple Mail/Yahoo! が対応。
default._bimi.example.com. IN TXT "v=BIMI1; l=https://example.com/logo.svg; a=https://example.com/vmc.pem"
VMC(Verified Mark Certificate)が別途必要(年間数万円)。ブランディング効果が見込めるECやSaaS向け。
10. よくある質問
SPFだけ設定すればOK?
不十分です。SPFは転送で壊れるため DKIM が必須。さらに「Fromヘッダ偽装」攻撃を防ぐには DMARC まで必要。3つセットが2026年の標準。
p=reject にしていきなり移行して大丈夫?
NG。必ず p=none でレポートを1〜2ヶ月観察してから段階移行してください。見落とした送信源(古い CRM やバッチサーバ等)があると正規メールが拒否されます。
サブドメインからもメールを送っている
DMARCは親ドメインの設定をサブドメインにも継承します(sp= で個別指定可)。サブドメイン側でSPF/DKIMを別途設定するか、メール送信を停止するかのいずれかが必要。
レポートが大量に届いて読めない
無料の dmarcian Free プランや、自前で MTA-STS と組み合わせて parsedmarc + Elasticsearch で可視化する方法があります。