こんにちは。ATOM 事業部エンジニアのyuinaです。
2023 年 10 月 3 日、Google はスパム対策強化のため、Gmail へ送るメールが満たすべき条件を 2024 年 2 月から厳しくすると発表しました。
Google からのガイドラインの公開もあり、各社対応に追われていたと思います。
ATOM でもメール送信を行う機能を持っているため、この対応を行う必要がありました。
今回は私が担当した、ATOMリニューアル版での対応について書いていこうと思います。
Google のメール送信者のガイドラインへの対応
Google からのガイドラインを要約すると、以下のような内容が記載されています。
- SPF/DKIM/DMARCへの対応を行うこと - メール送信元IPアドレスの逆引きが行えること - 送信時にTLS接続を行うこと - RFC5322に準拠すること - マーケティング目的やユーザーが配信登録したメールは配信停止を行えるようにすること - GoogleのPostmasterToolsにて迷惑メール率を0.1%未満に抑え、0.3%を超えないこと
ATOMではメール送信を行う際に、Amazon SESを利用しています。そのため、特に何もせずとも以下の要件は満たせています。
- SPFへの対応を行うこと - メール送信元IPアドレスの逆引きが行えること - 送信時にTLS接続を行うこと - RFC5322に準拠すること
社内の教訓(テックブログ)から、DKIMの対応も行っているため、以下の要件も満たせています。
- DKIMへの対応を行うこと
ATOMでのメールは、機能内通知を送信するために利用しており、マーケティング目的ではありません。
トランザクションメールに該当するため、以下の要件は、対応が必要ないと判断しています。
- マーケティング目的やユーザーが配信登録したメールは配信停止を行えるようにすること
AmazonSESでもバウンスレート・迷惑メール率はざっくり確認できます。
ですが、Gmailの場合SESにフィードバックループが戻ってこないため正しい計測ができません。
そのため、以下の要件はGoogleのPostmasterToolを利用開始する必要があります。
- GoogleのPostmasterToolにて迷惑メール率を0.1%未満に抑え、0.3%を超えないこと
今回は以下の対応を追加で行うことになりました。
- GoogleのPostmasterTools利用開始 - DMARCへの対応を行うこと
SPF/DKIM/DMARCとは?
突然出てきた謎の単語ですが、これらはメール送信者の認証を行うための技術です。メールの認証技術としては基本的なものとなります。
SPF(Sender Policy Framework)
メール送信元のドメインが、特定のメール送信元IPアドレスからのメール送信を許可するかどうかを判断するための技術です。
ドメインのDNSレコードに記述された送信元IPアドレスを検証し、送信元が持つ、正しいドメインから送信されていることを保証します。
DKIM(DomainKeys Identified Mail)
メールの送信元ドメインが、メールの内容を改ざんされていないことを証明するための技術です。
送信されたメールの内容にデジタル署名を付け、送信元ドメインの認証を提供します。
受信側のサーバーはこの署名を検証し、メールの改ざんや送信元の偽装を防ぎます。
DMARC(Domain-based Message Authentication, Reporting & Conformance)
SPFとDKIMの認証結果をベースに、さらにメールに表示される送信元アドレス(ヘッダFrom)に対して検証を行うことで、なりすましをほぼ完全に防ぐことができるメール認証技術です。
また、認証に失敗したなりすましの可能性があるメールについては、ドメインの所有者が受信者に対し取り扱いを指定することができます。
DMARCはメールの認証技術の中でも比較的新しいものとなります。SPFとDKIMを利用しても、迷惑メールが減少せず、その対策としてDMARCが登場したという経緯があります。
ではこの3つの意味を確認したところで、DMARCへの対応を行っていきます。
DMARC への対応
DMARCの対応を行うとして、3パターンの対応方法があります。
- SPFでDMARCに対応する
- DKIMでDMARCに対応する
- SPFとDKIMの両方でDMARCに対応する
SPFとDKIMの両方で対応することが理想です。
DKIMの対応は既に行われていますが、SPFはAmazonSESのものをそのまま利用していました。
このままではSPFでのDMARCには準拠できないため、まずはSPFの対応を行うことになります。
SPF の対応
AmazonSESにてSPFの対応を行うためには、カスタムMAILFROMドメインを設定する必要があります。
基本的にはサブドメインを入れるだけで他はデフォルトのままで問題ありません。
SESの設定を行うと、DNSに登録するためのレコードが表示されますので、表示されたレコードをDNSに登録することでSPFの対応が完了します。
Route53を利用している場合は、ボタン一つでそのままレコード登録が完了します。Terraform管理している場合は、コード化もお忘れなく。
これでSPFの対応が完了です。
実際にメール送信を行い、SPFの対応が完了しているか確認してみます。
ソースを確認すると、指定したドメインでSPFがパスしているので大丈夫そうです。
DMARC への準拠
SESでのDMARCの対応はほぼAWSのドキュメントの通りに進めています。
Route53(DNS)に以下のTXTレコード追加を行えば、最初のDMARCの対応は完了します。
"v=DMARC1;p=none;pct=25;rua=mailto:postmaster@example.com"
初期は以下のパラメータとしました。
パラメータ | 設定値 | 説明 |
---|---|---|
v | DMARC1 |
DMARCのバージョン。固定値。 |
p | none |
DMARCのポリシー。noneは通知のみ。他にquarantine ,reject がある。 |
pct | 25 |
25%のメールに対してDMARCのポリシーを適用する。(0-100) |
rua | mailto:postmaster@example.com |
DMARCの集計レポートを送信するメールアドレス。(設定値は例) |
他にもパラメータはありますので、詳細は以下のDMARC.orgのサイトを確認してみるとよいかと思います。
DMARCのパラメータは最初は弱く設定し、様子を見ながら徐々に上げていく方向で進めていくことがベストプラクティスとされています。
次にやっていくことは、p
の設定をquarantine
に変更し、pct
の設定を上げていくことになります。
詳細はAWSのドキュメントにありますので、参考にしてください。
docs.aws.amazon.com
実際にパラメータ調整を進めていくとなると、DMARCレポートの解析が必要となります。
SaaSのサービスもありますが、Dockerコンテナ等もGithubに公開されているので、基盤を構築すれば自前で解析することも可能です。
解析方法はまだ検討中の状態なので、今後の課題となります。
最後に実際にメール送信を行い、DMARCの対応が完了しているかソースの確認を行いました。
SPF,DKIM,DMARC全てパスしていますね。大丈夫そうです。
GoogleのPostmasterTools利用開始
GoogleのPostmasterToolsとは、Googleが提供するメール送信者向けのツールです。
このツールを利用することで、迷惑メール率や配信エラー率、ドメインレピュテーション等の情報を確認することができます。
PostmasterToolsにはドメインの登録と、所有権の確認が必要です。
所有権の確認は、公式ドキュメントにもありますが、DNSにTXTレコードを追加することで行います。
私はDMARCの対応の時に合わせてTXTレコード追加を行いました。
数日後にPostmasterToolsを見てみると、データが確認できるようになります。
メール送信を定期的に行っている場合は、データが蓄積されていくので、そのデータを元に対策を行っていくことができます。
まとめ
Google のメール送信者のガイドラインの対応で結構いろいろ対応が必要かと思いきや、思ったよりも対応する内容は少なく済みました。
メール送信をAmazonSESで行っている恩恵を受けられたなと思っています。
まだDMARC対応の課題は残っていますし、今後も新しいガイドラインが出てくるかもしれませんが、その都度戦っていくしかないですね・・・。
今回の対応で一通り対応したので、次新しいガイドライン出てきても少ない対応で済んでくれるといいなと思っています。