営業メールを送る前に必ず設定するのが SPF・DKIM・DMARC の3つです。仕組みの詳細は深いのですが、実務で必要な理解は「何を宣言しているか」だけです。ここではその1点に絞って整理します。

3つの役割は重ならない

仕組み宣言していること受信側が確認できること
SPFこのドメインのメールはこのサーバーから出る送信元IPが許可リストにあるか
DKIMこの署名は正規の送信者が付けた本文とヘッダが改ざんされていないか
DMARC上2つが失敗したらこう扱ってほしい差出人表示と認証結果が一致しているか

この表がそのまま設計です。SPFだけでは本文の改ざんを防げず、DKIMだけでは「どのサーバーから出るか」を宣言できません。DMARCは前2つの結果をどう扱うかを決める上位の宣言です。

SPF ― 送信サーバーの宣言

DNSのTXTレコードに、そのドメインのメールを送ってよいサーバーを列挙します。

記述意味
v=spf1SPFのバージョン宣言(固定)
include:...他のドメインのSPF設定を取り込む(メール配信サービス等)
ip4:...特定のIPアドレスを許可
~allそれ以外はソフトフェイル(疑わしいが拒否しない)
-allそれ以外はハードフェイル(拒否)

実務で注意する点が2つあります。

  • 1ドメインにSPFレコードは1つだけ。複数書くと無効になります。サービスを追加するときは既存のレコードにincludeを足します
  • DNS参照は10回まで。includeを重ねすぎると上限を超えて評価に失敗します

DKIM ― 電子署名

秘密鍵で署名し、公開鍵をDNSに置きます。受信側は公開鍵で署名を検証し、送信中に改ざんされていないことを確認します。

要素置き場所注意点
秘密鍵送信サーバー外部に出さない
公開鍵DNS(セレクタ名._domainkey)2048ビット推奨。長いので分割して登録
セレクタ署名ヘッダで指定複数の送信経路がある場合はセレクタを分ける

セレクタを分けられるのがDKIMの利点です。営業メール用の送信経路と、通常業務のメール経路で別のセレクタを使えば、鍵の入れ替えを片方だけで行えます。

DMARC ― 失敗したときの扱いを決める

DMARCは3つの値で構成されます。

ポリシー認証に失敗したメールの扱い導入順序
p=noneそのまま配送し、レポートだけ送る1番目
p=quarantine迷惑メール扱いにする2番目
p=reject受信を拒否する3番目

順序が重要です。いきなりp=rejectにすると、SPF/DKIMを通していない正規の送信経路(社内システムからの自動通知など)が全部消えます。

正しい進め方は次のとおりです。

  1. p=none でレポート受信先(rua=)を設定する
  2. 数週間レポートを見て、認証を通っていない正規の送信元を洗い出す
  3. 洗い出した送信元をSPF/DKIMに追加する
  4. p=quarantine へ上げる
  5. 問題がなければ p=reject へ

見落とされる「アライメント」

DMARCで最も見落とされるのがアライメント(一致)です。SPFやDKIMが通っていても、受信者に見えるFromのドメインと認証されたドメインが一致していないとDMARCは失敗します

見えるFromSPFで認証されたドメインDMARC
info@example.jpexample.jppass
info@example.jp配信サービスのドメインfail

配信サービスを使う場合、SPFは配信サービス側のドメインで認証されることがあります。この場合はDKIMを自社ドメインで署名するか、カスタムのReturn-Pathを設定してアライメントを合わせます。

認証は前提条件であって十分条件ではない

3つ設定しても、それだけでは届きません。認証が示すのは「なりすましでないこと」だけです。届くかどうかは別の数字で判断されます。

見られる要素意味
認証(SPF/DKIM/DMARC)なりすましでないか=入場資格
苦情率迷惑メール報告の割合。0.1%が警告圏の目安
バウンス率宛先不明の割合。高いとリストが古いと判定される
送信量の推移急増は不審な挙動として扱われる
配信停止の導線止めやすいメールは苦情になりにくい

つまり認証は「門を通る資格」であり、その先の評価は送り方で決まります。認証を完璧にしても、いきなり大量に送れば止まります。

設定の確認方法

設定後は必ず実測します。

  • 自分宛にテスト送信し、受信メールのヘッダの Authentication-Results を見る。spf=pass / dkim=pass / dmarc=pass を確認
  • DNS側は dig でTXTレコードを直接確認(SPF、セレクタ._domainkey_dmarc の3つ)
  • DMARCのレポート(rua=)が実際に届いているか確認

まとめ

  • SPF=送信サーバーの宣言、DKIM=改ざん検知の署名、DMARC=失敗時の扱い。役割は重ならない
  • SPFレコードは1ドメインに1つ、DNS参照は10回まで
  • DMARCはp=none → quarantine → reject の順。いきなりrejectにすると正規メールが消える
  • 見落としやすいのはアライメント。見えるFromと認証ドメインが一致していないと失敗する
  • 認証は入場資格。届くかどうかは苦情率・バウンス率・送信量の推移で決まる

出典