メールのなりすましやフィッシングを防ぐために、現代のメールシステムでは SPF・DKIM・DMARC という3つの認証が使われています。Gmailや大手プロバイダーがこれらを受信判断の基準にしているため、メールが届かない・迷惑メールに入る問題の多くがこれらの設定漏れに起因しています。
SPFとは
SPF(Sender Policy Framework) は「このドメインのメールはどのサーバーから送ってよいか」をDNSに登録する仕組みです。
受信サーバーは、差出人のドメインのDNSに登録されたSPFレコードを参照し、実際にメールを送ってきたIPアドレスが許可リストに含まれているかを確認します。
SPFレコードの書き方
| 要素 | 意味 |
|---|---|
v=spf1 | SPFバージョン宣言(必須) |
include: | 外部のSPFレコードを参照 |
~all | 記載外からの送信はソフトフェイル(警告扱い) |
-all | 記載外からの送信はハードフェイル(拒否) |
SPFレコードはTXTレコードとしてDNSに登録します。ドメインに対して設定できるSPFレコードは1件のみです。複数登録するとSPFが無効になるため注意が必要です。
DKIMとは
DKIM(DomainKeys Identified Mail) は、メールに電子署名を付与して改ざんを検知する仕組みです。
送信サーバーがメール本文とヘッダーにハッシュ値を計算し、秘密鍵で署名します。受信サーバーはDNSに公開された公開鍵で署名を検証し、送信後に内容が改ざんされていないかを確認します。
DKIMレコードの登録例
DKIMの公開鍵はTXTレコードとして以下の形式で登録します。
セレクター名._domainkey.ドメイン名
たとえば Google Workspace の場合は google._domainkey.example.com というホスト名に登録します。実際の値は利用しているメール送信サービスの管理画面から取得できます。
DMARCとは
DMARC(Domain-based Message Authentication, Reporting, and Conformance) は、SPFとDKIMの認証結果をもとに「認証失敗したメールをどう扱うか」をドメイン所有者が指定する仕組みです。
DMARCレコードの書き方
| ポリシー(p=) | 動作 |
|---|---|
none | 何もしない(モニタリング専用) |
quarantine | 迷惑メールフォルダへ移動 |
reject | メールを拒否 |
rua= に指定したアドレスに認証結果のレポートが届くため、最初は p=none で様子を見て、問題がなければ quarantine → reject と段階的に強化するのが定石です。
3つの認証の関係
SPF・DKIM・DMARCは単独では不完全であり、3つ揃って機能します。
- SPFのみ: 送信元IPは検証できるが、ヘッダーのFromアドレスは偽装できる
- DKIMのみ: 改ざん検知はできるが、第三者ドメインから署名されたメールも通過する
- DMARC: SPF・DKIMの結果と「Fromアドレスのドメイン」の一致を検証し、不一致時の処理を指定
この組み合わせにより、なりすましメールを体系的にブロックできます。
設定の確認方法
実際にSPF・DKIM・DMARCが正しく設定されているかは、以下のツールで確認できます。
- メール認証チェッカー: ドメインを入力してSPF・DKIM・DMARCをまとめて確認
- メールヘッダー解析ツール: 受信したメールのヘッダーを貼り付けると認証結果を表示
- DNSレコード確認ツール: TXTレコードを直接確認
設定変更後はDNSの反映に最大48時間かかることがあります。変更直後は焦らず時間をおいて再確認してください。