RevisNoteはStripeを用いて決済を行っているのですが、3月某日、StripeよりDMARCポリシーの設定をするようメールが来ました。そういうわけなので、RevisNoteでもDMARCポリシー対応をしていきます。
Stripeから届いたDMARCポリシー対応依頼のメール内容
まずはメール内容の確認です。こんなメールが届きました。
[ご対応依頼] カスタムメールドメインの有効な DMARC ポリシーを設定してください
Stripe をご利用いただきありがとうございます。
この度、カスタムメールドメインの設定が変更されることをお知らせいたします。現在、お客様のメールはカスタムメールドメインから送信されていますが、ご利用のドメイン revisnote.com に有効な DMARC ポリシーが設定されていませんので、以下の内容をご確認ください。
変更点
2024 年 2 月より、Google と Yahoo は迷惑メールに対処するための変更を順次実施しています。一括メール送信者に義務付けられる要件の 1 つに、SPF と DKIM と共に有効な DMARK ポリシーを併用してメールの認証を実行することがあります。
Stripe では、貴社のカスタムドメインから送信されるメールの認証に、すでに SPF と DKIM を使用しています。今回の新しい要件に完全に準拠するには、カスタムメールドメインを利用するための有効な DMARC ポリシーを保持していただく必要があります。
必要なご対応
ご利用のドメイン用の DMARC ポリシーをできる限り早く公開してくださいますようお願いいたします。このご対応により、お客様から Google および Yahoo のメールユーザーへのメール送信が中断されずに継続されます。DMARC ポリシーの設定方法については、Stripe のドキュメントをご覧ください。
2024/04/10までにご対応いただけない場合、お客様のメールの送信元はカスタムメールドメインではなく、stripe.com となります。
必要なことなので、対応していきましょう。まずはDMARCポリシーの基本理解をざっくりおさらいします。
DMARCポリシーとは
DMARC(Domain-based Message Authentication, Reporting, and Conformance)ポリシーは、その名前の通り、ドメイン名ベースで電子メールを認証し、送信元を保証するための技術的な仕組みです。
既存のメール認証技術であるSPF(Sender Policy Framework)とDKIM(DomainKeys Identified Mail)の上に構築されており、これらの技術を使用して、検証と不正なメールの防止を行うことを目的としています。
なお定義の大元は、RFC7489にあります。
基本理解をおさらいしたところで、早速Stripeの指示に従ってDMARCポリシーを設定していきましょう。
Stripeの指示に従ってDMARCポリシーを設定する
Stripeのダッシュボードにログインし、「設定」→「ビジネス」→「顧客のメールアドレス」メニューを開き、画面下部よりDMARCポリシーの設定を行いたいカスタムドメインを選択します。すると画面右半分にカスタムドメインの設定メニューが出てくるはずです。DMARCポリシー未設定の状況なら、そこに、
このドメインには有効な DMARC ポリシーがありません。使用を継続するには、DMARC ポリシーを設定してください。
というメッセージが表示されているはずです。メッセージの下部に「DNS設定を表示」ボタンがあるので、それをクリックします。
すると「自社のドメインを接続する」というポップアップが表示されます。ポップアップ上部に
この DNS レコードをお客様のドメインプロバイダーに追加するか、既存の DNS レコードを編集してそのドメインを所有していることを確認します。
と書いてある通り、ポップアップ内に表示されたDNSレコードをカスタムドメインのDNS設定に追加しましょう。ここに表示されているレコードは、SPF、DKIM、DMARCの3つに関するレコードであり、SPFとDKIMを設定済みなら、 _dmarcレコード以外は既に設定されているはずです。
ただし、この_dmarcレコードは、設定すべき値がポップアップ内に書いていません。利用者がDMARCポリシーをどんな設定にしたいかによって異なるため、あえて書かれていないというわけです。
_dmarcレコード
今回RevisNoteでは_dmarcレコードには次のような値を設定します。
v=DMARC1; p=none; rua=mailto:dmarc-reports@revisnote.com;
これは次のような形式に沿っています。
v=DMARC1; p=[ポリシー]; rua=[レポート送信先のメールアドレス];
それぞれの設定値についてみていきましょう。
v=DMARC1
レコードのバージョンを示します。現状は DMARC1
が唯一のバージョンです。
p=[ポリシー]
DMARCを満たさないメールに対してどのようなアクションを取るかについての設定です。none(報告のみ)、quarantine(隔離)、reject(拒否)のいずれかを指定できます。
- none : レポートのみを送信し、メールの処理は変更しないことを意味します。
- quarantine : スパムフォルダに移動させることを意味します。
- reject : メールを破棄することを意味します。
一般的には開始時にはnoneを設定し、運用を見ながらquarantine(隔離)やreject(拒否)に切り替えることが推奨されます。 今回、RevisNoteではひとまずnoneを設定しました。
rua=[レポート送信先のメールアドレス]
レポートを送信するメールアドレスを指定します。
これらを踏まえた上で_dmarcレコードを用意しましょう。
必要なレコードをDNS設定に追加する
_dmarcレコードに設定すべき値もわかったので、あとは指示された通りレコードをDNS設定に追加するだけです。
RevisNoteではドメイン名 revisnote.com をAmazon Route53で取得しているので、AWSのマネジメントコンソールからRoute53のコンソールに移動し、revisnote.com のホストゾーンを選択します。そして、ポップアップに表示された全てのレコードを作成します。
ここまでやればあとはもう一息! Stripeのダッシュボードに戻り、先ほどレコードが表示されていたポップアップ内の右下にある「今すぐ確認する」を押下すれば、DMARCポリシーの設定が完了します。
Stripeに限らず、他のサービスでもDMARCポリシーの設定を求められることがあるかもしれません。その際は、DNS設定を追加することでDMARCポリシーを設定しましょう。