「Gmail」(だけじゃないけど)でメールを大量送信するのに必要な「SPF」や「DKIM」、「DMARC」っていったい何なのさ?

はじめに

はじめに

皆さんも普段、Gmailなどのメールサービスで「大量送信」することがよくあると思いますが(ないない)、避けて通れないのが「送信ドメイン認証」です。ドウェイン・ジョンソンとはなんら関係はありません。

特に「SPF」・「DKIM」・「DMARC」というラーメン三銃士の仕組みは、2024年以降、GoogleとYahooによって必須要件として、1日あたり5,000通以上のメールをGmailアカウントやyahoo!メールに送信する送信者に対し、厳格に運用されるようになりました(そうでない送信者も、設定は推奨されています)。

ちなみに2024年1月から稼働を開始した、とある学校のインターネット出願システムにおいて、「@gmail.com」宛の自動返信メールのほとんどが未着となり、志願者のほとんどにメールが届かないという深刻な事態になりました。その時に疑われたのがこの「SPF」・「DKIM」・「DMARC」の設定ミスです。結局これはちゃんと設定はされていて、別の問題が原因だったワケですが(例まで出しといて、違うんかい!!)。

「送信ドメイン認証?SPF・DKIM・DMARCって、なんか聞いたことあるけど、いまいちピンとこないなあ」「設定しないと実際どうなるの?」「結局何をどうすればいいの?」「ここはどこ?私は誰?」」という方に向けて、今回の記事では、ちょっとITに詳しい「つもり」の筆者でも理解できるように丁寧に解説していきます。

なぜ今「送信ドメイン認証」が重要なのか?

なぜ今「送信ドメイン認証」が重要なのか?

メールの「なりすまし」が激増

昨今、スパムやフィッシング詐欺の大半は、「送信元を偽装したメール」によるものです。たとえば、Amazonや銀行、クレジット会社、お隣さんを装ったメールが届き、偽のログインページに誘導される……。こんな詐欺が後を絶ちません。

ここで重要になるのが「このメール、本当に○○社から届いたのか?」を検証する仕組み。これが「送信ドメイン認証」、もとい「送信ドウェイン・ジョンソン認証」です。

Gmail・Yahooが義務化

2024年2月以降、GmailとYahooメールは以下のようなルールを導入しました。

  • 送信者が SPF・DKIMの両方を正しく設定 していないと迷惑メール扱い
  • DMARCが未設定の場合、メールが届かないことも
  • 送信ドメインに正引き・逆引きDNSがないと弾かれる
  • 大量送信時はワンクリックでの購読解除リンクも必須

つまり、企業・団体・メルマガ運営者が、もし、「Gmailユーザー宛に大量にメールを送りたい」となったなら、最低限この3つを設定しなければならない時代になったのです。大変時代になりますた。

「SPF」・「DKIM」・「DMARC」とは?ざっくりとご紹介!

「SPF」・「DKIM」・「DMARC」とは?ざっくりイメージで理解

さて、そもそも「SPF」・「DKIM」・「DMARC」とは、「なんだこれは!」。以下ご紹介致します。

SPF(Sender Policy Framework)

まず前提の用語から説明します。インターネットのサービスを享受するのに必要不可欠なのが「IPアドレス」です。ITに詳しくない人でも、名称くらいは聞いたことがあるのではないでしょうか。聞いたことがないのであればここで覚えてください。

「IPアドレス」は、インターネット上でパソコンやスマホなどを識別するための番号。郵便の住所のようなものです。
例:203.0.113.25

そしてインターネットのサービスでは、「DNS(Domain Name System)」と呼ばれるサーバが存在します。これは、ドメイン名(例:○○.comや〇〇.co.jpなど)とIPアドレスを結びつける「インターネットの電話帳」の役割をする優れものです。
数字の羅列(IP)を覚えなくても、名前(ドメイン)だけで通信先を探せますので、ヒジョーに便利なシロモノです。白物家電ではありません。

「SPF」は、このDNSを使って、「このドメインからメールを送っていいIPアドレスはコレです」というリストを公開します。
受信側(Gmailなど)はそのリストを確認し、「お、正規のIPから来ているな」と判断できます。

たとえ話でいうなれば、「SPF」は会社の正社員リストです。
「この人(IPアドレス)は正式に雇ってますよ」と証明する帳簿のようなもの。リストに載っていない人が送ったメールは、筆者のような「不審人物」として疑われます。

DKIM(DomainKeys Identified Mail)

さて、「SPF」は「誰が送ったか」を確認する仕組みでしたが、「DKIM」は「メールが、途中で改ざんされていないか?」を確認する仕組みです。

まず、送信するメールに「デジタル署名」という特別な印をつけます。
この印は暗号技術で作られており、受信側は公開鍵を使って「署名が正しいか」を検証できます。
もし途中で内容が改ざんされていたら、この署名は一致しなくなります。

たとえ話でいうなれば、「DKIM」はいわば、封筒に押された封緘印(封筒や文書を開封されていないことを証明するための印影)です。
「この会社が確かに押印した、開封されていない正規の書類ですよ」ということになります。
途中で中身をすり替えたら、印の状態がおかしくなるのですぐバレます。しゅごい仕掛けがあるもんだ!

DMARC(Domain-based Message Authentication, Reporting and Conformance)

最後に、「DMARC」は、「SPF」と「DKIM」の結果を見て、「それをどう扱うか」を決める最終ルールです。

たとえば、

  • SPFもDKIMもOK → 通常通り受信
  • SPFはOKだけどDKIMはNG → 迷惑メールフォルダへ
  • SPFもDKIMもNG → 破棄する

というようなポリシーを設定し、受信側に指示します。
また、結果のレポートを受け取ることもできます。

たとえ話でいうなれば、DMARCは人事部のルール帳です。
「正社員リスト(SPF)と封緘印(DKIM)の両方に合わない書類は破棄してください」と明文化した指示書みたいなものと思ってもらっていいです。思うだけです。
これがあることで、現場(メール受信サーバー)は迷わず正しい対応ができます。

ようするに、

  • SPF → 誰が送ったかを確認(正社員リスト)
  • DKIM → 改ざんされていないかを確認(封筒の封緘印)
  • DMARC → 2つの結果を見て最終判断(ルール帳)

この3つが揃うことで、「送信ドメイン認証」は強固になり、「なりすまし」や「改ざん」メールを大幅に減らせます。

設定方法は「DNSレコードに追記するだけ」

「これらの設定ってチョー面倒そう!」と思うかもしれませんが、実は全部DNS(ネームサーバ)に「レコード」を追加するだけで済みます。

レコードと言っても、音の出るレコードではありません。つまり、メールサーバの専門知識がなくても、管理画面から数行、専用の文章をコピペすれば完了します。

① SPF(送信ドメイン認証)の設定方法
Google Workspace を使っている場合、DNSの設定画面にTXTレコードとして以下のようなものを追加します。
※他のメール配信サービスを使っている場合には、そのサービスごとに決まっている文章(includeの部分)を登録します。分からなければ運営元に聞きませう。

v=spf1 include:_spf.google.com ~all

② DKIM(送信メールに暗号署名)の設定方法
Google Workspace を使っている場合、まず管理コンソールで「認証用の鍵」を作ります。
「DKIM」の設定画面を開き、ドメインを選択して、「新しいレコードを作成」を選択すると、「TXTレコード」が生成されます。そのTXTレコードを、先ほどのようにDNSのTXTレコードとして追加登録します。

ホスト名: google._domainkey
タイプ: TXT
値: (管理コンソールで表示された長い文字列)

その後、Gmailの設定で署名を有効化すれば完了です。
他のメール配信サービスを使っている場合には、分からなければ運営元に聞きませう(こればっか)。

③ DMARC(送信メールに署名を付与する設定方法)の設定方法
以下のようなTXTレコードをDNSに追加します。※分かっているとは思いますが、you@example.comをそのまま入れないように。ここには、おおむね、あなたのメールアドレスを置き換えて入れることとなります。

ホスト名: _dmarc
タイプ: TXT
値: v=DMARC1; p=quarantine; rua=mailto:you@example.com; ruf=mailto:you@example.com; fo=1; sp=none; aspf=r

p= : 方針
none(監視のみ)
quarantine(隔離・迷惑メール振り分け対象扱い)
reject(メールを拒否し、完全に破棄する)

rua= : 集計レポートの送信先メールアドレス
ruf= : 失敗した個別メールの詳細レポート送信先(必要に応じて。受信側が対応していない場合もある)
fo=1 : SPFまたはDKIMが失敗したら報告
aspf=r : SPFのrelaxed(緩やか)な照合(推奨)

設定方法

まずはp=noneで始め、ログ(レポート)を確認しながら徐々に厳格化するのがセオリーのようです。

注意点とハマりがちな落とし穴

注意点とハマりがちな落とし穴

SPF・DKIMのどちらか片方だけでは不十分

2024年以降、SPFとDKIMの両方が正しく設定されていないと「迷惑メール」になる可能性が高くなります(ちゃんと届く場合もあります)。Gmailはこの両方を使って正当性を評価するため、両方設定しておいた方が幸せ、もといシワ寄せになります。

SPFレコードは基本1行だけ

複数のSPFレコードを設定すると、仕様上は登録可能ではありますが、逆に事実上、誤動作の原因となり、無効化されるに等しい状態になる可能性が高いです。複数の送信元がある場合は、include:を使って1つのSPFレコードに統合しましょう。

例(複数サービス併用):

v=spf1 include:_spf.google.com include:spf.sendgrid.net ~all

DMARCのレポートを見逃すな

DMARCの設定では、rua=で指定したメールアドレスにレポートが届きます。このログを見ることで、なりすましや送信ミスを発見できます。

専用の可視化サービスを使うと便利です。

設定は「最低限の信頼性確保」

認証方式目的必須度設定場所
SPFIPの正当性を確認◎必須DNS(TXT)
DKIM改ざん防止署名◎必須DNS(TXT)+送信側
DMARCポリシーとレポート管理◎必須DNS(TXT)

「ウチのメールがGmailに届かない」「メルマガが迷惑メール扱いされる」という人は、まずこの3つを確実に設定しているか確認することが第一歩です。


専用のツール・サービス一覧

ツール名用途URL
Gmail Postmaster Tools送信結果の分析https://postmaster.google.com/
MXToolboxSPF/DKIM/DMARC確認https://mxtoolbox.com/
DMARC AnalyzerDMARC可視化https://www.dmarcanalyzer.com/
Mail-testerメールのスパムスコア測定https://www.mail-tester.com/

まとめ

まとめ

認証は「信用の名刺」

SPF・DKIM・DMARCは、いわば「送信者の信用を証明する名刺」のようなもの。特にビジネス用途では、もはや、「認証」のないメールは信用されないどころか、届かない時代に入っています。

「設定が難しそう」「うちはそんなに送らないからいいや」…。と思っている方ほど、知らず知らずのうちに、送ったメールが「届かない側」になっているかもしれません。

大切な取引先・顧客へ届けるメールを確実なものにする為に、相手の為だけでなく、自分の為・・・。ぜひ一度、この機会に設定を見直してみてください。

参考文献
proofpoint/DMARCとは?その仕組みと設定方法、SPFやDKIMとの関係
CLOUDFLARE/DMARC、DKIM、SPFとは何ですか?
Goofle Workspace 管理者ヘルプ/DMARC を設定する
G-gen Tech Blog/GmailへのDMARC設定方法。メール送信者ガイドラインに準拠する


上部へスクロール