営業メールを送る前に必ず設定するのが SPF・DKIM・DMARC の3つです。仕組みの詳細は深いのですが、実務で必要な理解は「何を宣言しているか」だけです。ここではその1点に絞って整理します。
3つの役割は重ならない
| 仕組み | 宣言していること | 受信側が確認できること |
|---|---|---|
| SPF | このドメインのメールはこのサーバーから出る | 送信元IPが許可リストにあるか |
| DKIM | この署名は正規の送信者が付けた | 本文とヘッダが改ざんされていないか |
| DMARC | 上2つが失敗したらこう扱ってほしい | 差出人表示と認証結果が一致しているか |
この表がそのまま設計です。SPFだけでは本文の改ざんを防げず、DKIMだけでは「どのサーバーから出るか」を宣言できません。DMARCは前2つの結果をどう扱うかを決める上位の宣言です。
SPF ― 送信サーバーの宣言
DNSのTXTレコードに、そのドメインのメールを送ってよいサーバーを列挙します。
| 記述 | 意味 |
|---|---|
| v=spf1 | SPFのバージョン宣言(固定) |
| 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を通していない正規の送信経路(社内システムからの自動通知など)が全部消えます。
正しい進め方は次のとおりです。
- p=none でレポート受信先(rua=)を設定する
- 数週間レポートを見て、認証を通っていない正規の送信元を洗い出す
- 洗い出した送信元をSPF/DKIMに追加する
- p=quarantine へ上げる
- 問題がなければ p=reject へ
見落とされる「アライメント」
DMARCで最も見落とされるのがアライメント(一致)です。SPFやDKIMが通っていても、受信者に見えるFromのドメインと認証されたドメインが一致していないとDMARCは失敗します。
| 見えるFrom | SPFで認証されたドメイン | DMARC |
|---|---|---|
| info@example.jp | example.jp | pass |
| 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と認証ドメインが一致していないと失敗する
- 認証は入場資格。届くかどうかは苦情率・バウンス率・送信量の推移で決まる