SPF / DKIM / DMARC 完全入門【2026年版】

公開: 2026-04-15 / 更新: 2026-05-01 / カテゴリ: メール認証 / 読了 15分

2024年2月以降、Gmail と Yahoo! Mail がメール送信者認証を 事実上の必須要件 としました。月5,000通以上の一括送信ドメインは SPF/DKIM/DMARC の3点セットを必須化、未対応のメールは段階的に拒否されています。本記事では、これら3技術の役割を最短で理解し、自社ドメインに適用するまでの手順をまとめます。

目次

  1. なぜ今メール認証が必須なのか
  2. SPF (Sender Policy Framework)
  3. DKIM (DomainKeys Identified Mail)
  4. DMARC とポリシー
  5. 導入フロー (推奨)
  6. Postfix での DKIM 設定例
  7. Google Workspace での設定例
  8. DMARC レポートの読み方
  9. BIMI (発展)
  10. FAQ

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"

主要メカニズム

注意点

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=)

主要タグ

DMARCチェッカー で確認できます。

5. 導入フロー (推奨)

  1. すべての送信源(自社サーバ・SendGrid・MailChimp・Salesforce等)を棚卸し
  2. SPF を全送信源を網羅して設定 — ~all から始める
  3. DKIM 鍵を生成・公開し、各送信源で署名を有効化
  4. DMARC を p=none; rua= でレポート収集開始
  5. 1〜2ヶ月レポートを観察し、見落とし送信源を吸収
  6. p=quarantine; pct=10 → 25 → 50 → 100 と段階強化
  7. 最後に 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 での設定例

  1. 管理コンソール → アプリ → Google Workspace → Gmail → メール認証
  2. 「新しいレコードを生成」で 2048bit を選択
  3. 表示された TXT 値を google._domainkey.example.com に登録
  4. DNS 反映後(数分〜数時間)、コンソールで「認証を開始」
  5. 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 で可視化する方法があります。


関連記事 / ツール