【Stripe】カスタムメールドメインに有効なDMARCポリシーを設定する

by Shigeru Hyodo, Developer at RevisNote

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ポリシーを設定しましょう。

More articles

効果的な日報の書き方

日報は、業務の進捗を管理し、チーム内での情報共有を行うための重要なツールです。しかし、単なる業務記録として捉えるのではなく、ビジネスの成功につながる効果的な日報を書くことが求められます。本記事では、効果的な日報の書き方を具体例や応用的な方法を交えながら解説します。

Read more

Node.js製DynamoDB ORM「ElectroDB」がすごい

RevisNoteではDBにAWSのNoSQL DB「DynamoDB」を使っているのですが、そのDynamoDBのNode.js製ORM「ElectroDB」がかなり優れており、システム開発の効率をぐんと引き上げています。今回はそんなElectroDBの紹介をします。

Read more