BrazeのSPF・DKIM・DMARC設定。
Brazeには、ルートドメインに貼り付ける共通のSPFレコードがありません。BrazeのメールチャネルはSparkPostの送信インフラ上で動作しており、オンボーディングでIPと送信ドメインを設定する際に、Brazeがアカウントごとに認証レコードを用意します。専用の送信用サブドメイン(email.yourdomain.comなど)をBrazeに伝えると、Brazeがアカウント固有のDKIM公開鍵レコードとバウンス/Return-Pathレコードを生成するので、その値をそのままDNSホストで公開します。DMARCの成功を支えるのは、自社ドメインとして署名されたDKIMです。さらにカスタムのバウンス/Return-Pathサブドメイン(sparkpostmail.comへのCNAME)を設定すると、SPFのアライメントも一致します。DMARCレコード自体をBrazeが作成することはないため、自分で追加します。
Brazeを認証すべき理由
Brazeは大量配信を行うライフサイクル・マーケティングプラットフォームであり、そのメールは受信側が最も厳しくチェックする種類のものです。キャンペーンが受信トレイに届くか迷惑メールフォルダーに振り分けられるかは、認証で決まります。2024年2月以降、GmailとYahooは、すべての大量送信者(1日あたり約5,000通以上)に対し、SPF、DKIM、DMARCにアライメントが一致した状態で成功することを義務付けています。Microsoftも2025年に、Outlook.com、Hotmail、Live宛ての大量メールに同じ要件の適用を始めました。Braze自身のガイダンスも、Brazeのメールがブロックされる主な原因は、SPFとDKIMの設定ミスによるDMARCの失敗だと明言しています。メール配信サービス(ESP)全般に共通する注意点は、DKIMが自社ドメインではなくサービス側のドメインで署名されてしまうことです。BrazeのDKIM鍵が公開され、その鍵で自社ドメインとして署名されていなければ、どのメカニズムもアライメントが一致せず、DMARCに成功できません。正しく設定すれば、両方のメカニズムで自社ドメインとのアライメントが一致してDMARCに成功し、Brazeの送信IPで築いたレピュテーションが自社ドメインに蓄積され、転送されたメールも認証され続けます。
BrazeにおけるSPFの実情
Brazeはアカウント単位で設定する送信者であり、共通のincludeを使うサービスではありません。そのため、ルートドメインのSPFレコードに追加すべきinclude:sparkpostmail.comはなく、そこに追加してもいけません。BrazeはSparkPostのインフラ上で動作しているので、SPFのメカニズムはルートドメインではなくバウンス/Return-Pathサブドメインに置かれます。デフォルトでは、BrazeはエンベロープのMAIL FROM(Return-Path)をsparkpostmail.comにして送信します。そのためSPFのチェック自体には成功しますが、それはsparkpostmail.comに対する成功であり、自社ドメインに対するものではありません。つまりアライメントは一致せず、それ単体ではDMARCの役に立ちません。それでも問題はありません。アライメントによってDMARCの成功を支えるのは、scphセレクターを使って自社ドメインとして署名されるDKIMだからです。SPFのアライメントも自社ドメインと一致させたい場合は、カスタムのバウンス/Return-Pathサブドメインを設定します。SPFのアライメントは一部の受信側で重視され、特定の転送経路でも維持されるため、設定する価値があります。方法は、bounces.yourdomain.comのようなホストからsparkpostmail.comへのCNAMEを作成するか(SparkPostのSPFであるv=spf1 exists:%{i}._spf.sparkpostmail.com ~allをそのまま引き継ぎます)、別の方法であるMX方式で、同じサブドメインにMXとv=spf1 include:sparkpostmail.com ~allのTXTを設定するかのいずれかです。どちらの場合もincludeを置くのはバウンス用サブドメインであり、ルートドメインではありません。したがって、BrazeがルートドメインのSPFレコードに加えるDNSルックアップは0回です。ルートドメインのSPFレコードは、Return-Pathでルートドメインを実際に使う送信者(Google Workspace、Microsoft 365、トランザクションメールのリレー)のために確保しておけます。リージョンに関する補足として、EUでホストされるBrazeインスタンスでは、sparkpostmail.comの代わりにEU専用のホスト(eu.sparkpostmail.comのターゲット)を使います。Brazeから指定されたホストを使用してください。
設定手順
- 1
専用の送信用サブドメインを決める
Brazeだけに使うサブドメイン(email.yourdomain.com、news.yourdomain.com、mktg.yourdomain.comなど)を決め、Brazeのオンボーディング担当またはアカウント担当に伝えます。キャンペーンを専用サブドメインから送信すると(Brazeが推奨する構成です)、マーケティングのレピュテーションを企業メールやトランザクションメールから切り離せるため、問題のある一斉配信があってもルートドメインまで悪影響が及びません。
- 2
アカウント固有のDNSレコードをBrazeから受け取る
BrazeはSparkPostベースのインフラでIPと送信ドメインを設定し、公開すべきレコードの正確な値を提供します。内容は、DKIM公開鍵レコード、バウンス/Return-Pathレコード、バウンス用サブドメインのSPFに関する案内です。自分で貼り付けられるincludeはありません。セレクターと鍵はアカウント固有で、ホストはBrazeのUSインスタンスとEUインスタンスで異なります。値はBrazeから提供されたとおりにコピーしてください。
- 3
DKIMレコードを公開
Brazeから提供されたDKIMレコードを送信用サブドメインに追加します。通常は、SparkPost形式のセレクター(scph0123._domainkey.email.yourdomain.comなど)のTXTレコードで、値はv=DKIM1; k=rsa; p=<your public key>です(アカウントによっては代わりにCNAMEが提供されます)。対応する秘密鍵はBrazeが保持し、メールをd=email.yourdomain.com(送信用サブドメイン)として署名します。これにより、DMARCに必要なFromアドレスとのアライメントが一致します。
- 4
SPFアライメント用のバウンス/Return-Pathレコードを追加
バウンス用サブドメイン(例:bounces.yourdomain.com)を、sparkpostmail.comを指すCNAMEとして作成します。EUでホストされるBrazeの場合は、EU専用のターゲットを指定します。これによりエンベロープのReturn-Pathが自社ドメインのサブドメインになり、SPFのアライメントが一致します。CNAMEはSparkPostのSPFをそのまま引き継ぐため、ほかに追加するものはありません(BrazeからMX方式を案内された場合は、同じバウンス用サブドメインにsparkpostmail.comへのMXとv=spf1 include:sparkpostmail.com ~allのTXTを追加します。ルートドメインには追加しないでください)。
- 5
ルートドメインのSPFレコードは変更しない
ルートドメインのSPFレコードにinclude:sparkpostmail.comを追加しないでください。BrazeはそこでSPFを認証せず、バウンス用サブドメインを使います。ルートドメインに追加しても効果はなく、SPFのDNSルックアップの10回制限のうち1回を無駄に消費します。ルートドメインのSPFレコードは1つだけにし、Return-Pathにルートドメインを使う送信者だけを記載してください。
- 6
DMARCレコードを公開
BrazeがDMARCを作成することはありません。_dmarc.yourdomain.comに、v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.comで始まるTXTレコードを追加します。Brazeは、継承によってすべてのサブドメイン(Brazeの送信用サブドメインを含む)に適用されるよう、ルートドメインにポリシーを設定することを推奨しています。p=noneは監視のみのため、アライメントを確認している間、影響はありません。
- 7
CNAMEでCloudflareのプロキシをオフにする
DNSがCloudflare配下にある場合は、バウンス用CNAME(およびBrazeからCNAME形式のDKIMレコードが提供された場合はそれも)を「DNS only」(グレーのクラウド)に設定します。オレンジのクラウドでプロキシが有効なCNAMEはsparkpostmail.comに解決されず、Brazeのドメイン確認が失敗します。
- 8
レコードの公開をBrazeに伝え、実際のメールで確認
DNSを公開したことをBrazeのチームに伝え、ドメインの確認と送信の有効化を進めてもらいます。次にテストキャンペーンを送信し、Gmailで開いてMore → Show originalを選びます。DKIM: PASSかつd=が自社ドメイン(例:email.yourdomain.com)、SPF: PASS(カスタムのReturn-Pathを設定していればバウンス用サブドメイン、設定していなければsparkpostmail.comと表示)、DMARC: PASSと表示されていれば成功です。最後に、新しい専用IPが割り当てられた場合は、最初の数週間で徐々に送信量を増やし、送信IPをウォームアップします。
追加するレコード
正確な値はBrazeのセットアップウィザードで生成されます。以下は、DNSホストに追加するレコードの形式を示したものです。
| タイプ | ホスト | 値 |
|---|---|---|
| TXT | scph0123._domainkey.email | v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC…(per-account public key)DKIM公開鍵。scphセレクター(SparkPostの日付コード形式)と鍵は、Brazeがアカウントごとに生成します。Brazeから提供されたレコードを正確にコピーしてください。秘密鍵はBrazeが保持し、ローテーションします。アカウントによっては、TXTの代わりにCNAMEが提供されます。値は例です。 |
| CNAME | bounces | sparkpostmail.comバウンス/Return-Pathサブドメイン。これによりSPFのアライメントが一致し、SparkPostのSPFが自動的に引き継がれます(sparkpostmail.comはv=spf1 exists:%{i}._spf.sparkpostmail.com ~allを公開しています)。EUでホストされるBrazeでは、eu.sparkpostmail.comのターゲットを使います。例です。正確なホストとターゲットはBrazeから提供されたものを使用してください。ルートドメインではなく、専用のバウンス用サブドメインに設定します。 |
| TXT | bounces | v=spf1 include:sparkpostmail.com ~all上記CNAMEの代替です。BrazeからMX方式のバウンス設定(sparkpostmail.comへのMXとこのSPF)を案内された場合にのみ使用します。設定先はバウンス用サブドメインであり、ルートドメインではありません。EUの場合は、Brazeから提供されたeu.sparkpostmail.comのホストを使います。1つのサブドメインにCNAMEとこのTXTを併用することはできないため、どちらかの方法を選んでください。 |
| TXT | _dmarc | v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com自分で公開するレコードです。Brazeが作成することはありません。ルートドメインに設定すると、継承によってBrazeのサブドメインにも適用されます。_dmarcは1つのドメインにつき1つです。p=noneから始め、その後引き上げます。 |
ルートドメインのSPF(v=spf1)のTXTレコードは1つだけにし、すべての送信元をこの1行にまとめてください。SPFレコードが2つあると、それ自体がエラーになります。
DNSルックアップの10回制限
SPFのDNSルックアップは10回までに厳格に制限されており、超えるとpermerrorを返して、どの受信側でも検証されなくなります。Brazeの設定がこの上限のうち何回を消費するかは、次のとおりです。
Brazeの推奨設定はルックアップを消費しません。10回すべてを、includeが必要な他の送信元に使えます。
DKIM
Brazeで要となるレコードはDKIMです。自社ドメインとアライメントが一致し、DMARCの成功を支えるメカニズムだからです。BrazeはSparkPostベースのインフラでドメインを設定する際に、アカウント固有のDKIM鍵ペアを生成して秘密鍵を保持し、DNSで公開するための公開鍵を提供します。多くのアカウントでは、SparkPost形式のセレクター(scph0123._domainkey.email.yourdomain.comなど)にTXTレコードを設定し、値はv=DKIM1; k=rsa; p=<your public key>となります。アカウントによっては、代わりにCNAMEが提供されます。いずれの場合も、Brazeから提供されたものをそのまま公開してください。scphセレクターは日付を含むコードで各アカウントに固有のため、推測はできません。基になる鍵のローテーションはBraze側で行われます。レコードが解決されるようになると、Brazeはすべてのメッセージをd=email.yourdomain.com(送信用サブドメイン)として署名します。これは表示されるFromアドレスと組織ドメインが同じなので署名のアライメントが一致し、DMARCに成功できます。BrazeのDKIMで最も多い失敗は、ESPのドメインで署名されてしまうケースです。鍵が公開されていないと、メールが自社ドメインではなくサービス側のドメインで署名されることがあり、DKIM自体には成功してもアライメントが一致しないため、DMARCの助けになりません。実際のメールで、署名ドメインがsparkpostmail.comやbrazeのアドレスではなく、自社ドメイン(d=email.yourdomain.comまたはルートドメイン)になっていることを確認してください。
DMARC
DMARCはドメインに設定する別のポリシーレコードで、Brazeが作成することはありません。DNSホストで自分で追加します。_dmarc.yourdomain.comに、v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.comで始まるTXTレコードを公開します。Brazeは、サブドメインに別のレコードを公開するのではなく、ルートドメインにポリシーを設定することを推奨しています。こうすると、ポリシーの継承によって、Braze専用の送信用サブドメインを含むすべてのサブドメインに適用されます(サブドメイン専用の_dmarcを追加したり、ルートドメインのレコードでsp=タグを使ったりするのは、意図的にサブドメインのポリシーを変えたい場合だけです)。p=noneは監視のみのため、配信には影響しません。その間に集計レポート(rua)を確認し、Braze経由のメールがSPFとDKIMに、自社ドメインとアライメントが一致した状態で成功していることを確かめます。DMARCは、SPFかDKIMのどちらかのアライメントが一致すれば成功します。Brazeの場合、DKIMはscphセレクターによってアライメントが一致し、カスタムのバウンス/Return-Pathサブドメインを設定すればSPFも一致するため、すべて設定すれば両方で成功します。1~2週間のレポートで、Brazeがアライメントの一致した安定した送信元であることを確認できたら、p=quarantine、最終的にp=rejectへと段階的に引き上げます。送信者がいくつあっても、_dmarcレコードはドメイン全体で1つだけにしてください(Brazeによると、後からBIMIに取り組む場合もBraze側で特別な調整は不要ですが、事前にp=quarantineまたはp=rejectのDMARCポリシーが必要です)。
正しく設定できたか確認する
Brazeがドメインを確認済みと表示していても、それだけで判断せず、実際のメールで確認してください。Brazeの送信用サブドメインからテストメールを送り、Gmailで開いてMore → Show originalを選びます。DKIM: PASSかつd=が自社ドメイン(通常は送信用サブドメインで、たとえばd=email.yourdomain.com)で、DMARC: PASSと表示されていれば成功です。d=がsparkpostmail.comやbrazeのドメインの場合は、鍵のアライメントが一致していません。SPFは、カスタムのReturn-Pathを設定していればバウンス用サブドメインに対してPASSと表示され、設定していなければsparkpostmail.comに対してPASSと表示されます。sparkpostmail.comと表示されるのは想定どおりで、DKIMがDMARCの成功を支えているため、失敗として扱う必要はありません。Qualisendのドメイン診断でドメインをチェックし、DKIMレコード、バウンス/Return-Pathレコード、DMARCレコードがすべて正しく解決されることを確認します。集計レポートが届き始めたら、DMARCレポート解析にレポートをドロップします。ポリシーをp=rejectへ引き上げる前に、Braze(SparkPost経由)がアライメントの一致した、成功している送信元として表示されていることを確認してください。
よくある注意点
- 適用範囲
レコードはアカウント固有で、Brazeから提供されます。自分で貼り付けられるincludeはありません。scphのDKIMセレクター、鍵、バウンスのターゲットはオンボーディング中にアカウント用に生成されるので、正確にコピーしてください。セレクターやSPFのincludeを推測しても、何も認証されません。
- DNS設定
USインスタンスとEUインスタンスの違いは重要です。EUでホストされるBrazeはSparkPostのEUインフラで動作し、eu.sparkpostmail.comのターゲット(およびEU専用のレコードホスト)を使います。USインスタンスはsparkpostmail.comを使います。別のリージョンのホストを公開すると、バウンス/Return-Pathの解決とSPFが機能しなくなるため、Brazeから提供されたものをそのまま使用してください。
- DNS設定
SPFのアライメントは任意の設定です。デフォルトではBrazeのエンベロープのReturn-Pathはsparkpostmail.comにあるため、SPFには成功してもアライメントは一致せず、DMARCは完全にDKIMに依存します。「SPF: sparkpostmail.com」と表示されるのは正常です。SPFのアライメントも一致させたい場合は、カスタムのバウンス/Return-Pathサブドメイン(sparkpostmail.comへのCNAME)を設定してください。
- 認証失敗の原因
ルートドメインのSPFレコードにinclude:sparkpostmail.comを追加しないでください。これを置くのはバウンス用サブドメインだけです(バウンス用CNAME経由で継承される場合もあります)。ルートドメインでは効果がなく、SPFのDNSルックアップの10回制限のうち1回を無駄に消費します。
- DNS設定
Cloudflareのプロキシがあると機能しません。バウンス用CNAME(およびBrazeからCNAME形式のDKIMレコードが提供された場合はそれも)を「DNS only」(グレーのクラウド)に設定してください。オレンジのクラウドでプロキシが有効なCNAMEはsparkpostmail.comに解決されず、確認が保留のままになります。
- 適用範囲
ルートドメインそのものではなく、専用サブドメインから送信してください。yourdomain.comからBrazeのキャンペーンを一斉配信すると、マーケティングのレピュテーションが企業メールやトランザクションメールと一緒になってしまいます。専用サブドメイン(email.やnews.)はBrazeが推奨する構成で、問題のある配信があってもルートドメインのレピュテーションを損ないません。
- 適用範囲
新しい専用IPにはウォームアップが必要です。Brazeのオンボーディングでは専用IPが割り当てられることがよくあります。2~4週間ほどかけて徐々に送信量を増やしてください(送信量の少ないアカウントはBrazeが管理する共有IPプールを使う場合があり、その場合のウォームアップはBraze側で行われます)。新しいIPにはレピュテーションがないため、DNSが完璧でも、初日から最大量で一斉配信すれば初期の配信はうまくいきません。
- DNS設定
DMARCはルートドメインに設定し、継承によってBrazeのサブドメインにも適用します(Braze自身の推奨です)。sp=やサブドメインのレコードでサブドメインのポリシーを意図的に変えたい場合を除き、送信用サブドメインに矛盾する2つ目の_dmarcを公開しないでください。
- DNS設定
Brazeからサブドメインの委任を提案された場合、それは追加の手順ではなく代替の方法です。この方法では、NSレコードで送信用サブドメイン全体をSparkPostのネームサーバーに委任し、DKIM、SPF、バウンスのレコードはBrazeが管理します。委任する場合は、そのサブドメインに矛盾するレコードを自分で公開せず、どちらか一方の方法を選んでください。
SPFレコードを作成
Brazeでは、ルートドメインにSPFのinclude:を追加する必要はありません。作成ツールを使って他の送信元用のクリーンなレコードを1つ組み立て、1行に収めてください。
送信元
メールの送信に使っているサービスを検索して、それぞれチェックを入れてください。
上の検索欄で利用中のメールサービスを検索するか、してください。
このドメイン自身のサーバー
ドメインが(上記のサービスを経由せず)直接メールを送信する場合は、ドメイン自体を許可します。
その他の送信元・IP
リストにないもの(別のサービスのSPFホストや特定のIPアドレス)を追加します。
接頭辞のinclude:は自動で付加されます。サービスのドキュメントに記載されているホスト名を入力してください。
その他すべての送信元へのポリシー
上記に記載されていないサーバーからのメールを、受信側がどう処理すべきかを指定します(allメカニズム)。
送信元がまだないため、すべてのメッセージに~allポリシーが適用されます。ステップ1で利用中のサービスを追加してください。
- ルートドメインにTXTレコードとして公開します。ホストは@(ドメインそのもの)、値は上記の文字列全体です。
- SPFレコードは1つのドメインにつき1つだけにします。すべての送信元をこの1行にまとめてください。v=spf1で始まるTXTレコードが2つあると、両方とも無効になります。
- DNSルックアップは10回以内に収めてください。include:、a、mxはそれぞれ1回とカウントされ、includeは内部でさらにルックアップを発生させることがあります。ip4:とip6:はカウントされません。
送信ドメイン認証の設定が済んだら、次は検証済みのクリーンなリストへの配信です。
リストを検証BrazeのSPFに関するよくある質問
関連記事
マーケティング・ESPの他のサービス
すべてのSPFガイド公開したら、ドメイン診断ですべてのレコードが正しく解決されることを確認し、DMARCレポート解析で自社ドメインを名乗って送信している送信元を把握します。作成ツールではすべての送信元を確認できます。ただし、認証は到達率対策の半分にすぎません。送信IPやドメインがブラックリストに掲載されていると、SPFの設定がどれほど適切でも迷惑メールに振り分けられます。そのため、ブラックリスト監視で掲載状況を確認しておくことをおすすめします。
認証の次は、リストをクリーンに保つ
SPF、DKIM、DMARCに成功すれば受信トレイに届き、クリーンなリストならその状態を維持できます。お手持ちのリストも検証してクリーニングできます。100クレジット無料、クレジットカード登録不要で始められます。