BrevoのSPF・DKIM・DMARC設定。
Brevo(旧Sendinblue)では、Domainsページからドメインを認証します。この流れはSPFではなくDKIMが中心です。共有のSPF行を貼り付ける代わりに、ドメインの所有権を証明するBrevo codeのTXTレコードと、ローテーションされる署名鍵をBrevoに委任する2つのDKIM用CNAMEレコードを公開します。DMARCに成功する決め手になるのは、SPFではなくこれらのDKIMレコードです。Brevoは共有のinclude(include:spf.brevo.com)も公開していますが、標準の共有IP送信ではエンベロープ送信者をBrevoが管理するため、任意です。Brevo codeとDKIMレコードの確認が済むと、「via」の表示が消え、メールは自社ドメインとアライメントが一致します。
Brevoを認証すべき理由
Brevoでのドメイン認証は形式的な作業ではなく、メールが受信トレイに届くかどうかそのものを左右します。Brevoも、これを要件として製品に組み込んでいます。2024年2月1日以降、GmailとYahooは、すべての大量送信者(1日あたり約5,000通以上)に対し、SPF、DKIM、DMARCにアライメントが一致した状態で成功することを義務付けています。Microsoftも2025年5月5日に、同じ基準を適用すると発表しました。Brevoの認証の流れもこれを反映しており、完全に認証されたドメインではDKIMとあわせてDMARCレコードを公開します。認証されていないメールは、これらのメールプロバイダーによって受信を制限されるか、拒否されます。認証するまでは、Brevoは自身のエンベロープドメインで共有インフラから送信します。受信者には「via」や「sent on behalf of」の表示が見え、Fromアドレスのアライメントは一致せず、DMARCにも成功できません。積み上げた送信レピュテーションも、未認証の他のBrevo送信者全員とひとまとめになります。Brevo code、DKIM用の2つのCNAME、DMARCを揃えれば、すべて解決します。DKIMは自社ドメインとアライメントが一致し、「via」の表示が消え、DMARCに成功し、レピュテーションは自社に蓄積されます。
BrevoにおけるSPFの実情
Brevoは技術的には「include」方式のサービスです。spf.brevo.comは実在する共有のSPFレコードで、ip4ブロックをフラットに列挙したものです。DNSルックアップ1回分として数えられます。ただし実際には、Brevoはこれを必須にしていません。標準のドメイン認証の流れは、SPFではなくBrevo code、DKIM、DMARCを中心にしています。理由は次のとおりです。共有IPでは、エンベロープ送信者(受信側が実際にSPFをチェックする対象のReturn-Path/MAIL FROM)は常にBrevoが所有するドメインで、これまではsender-sib.com配下(従来のSendinblueのインフラではmailin.fr)でした。そのためinclude:spf.brevo.comをルートドメインのSPFレコードに追加しても、SPFはBrevoのインフラに対して認証されるだけで、表示上のFromドメインとはアライメントが一致しません。つまり、それだけではDMARCを満たせません。DMARCのアライメントは、すべてDKIMによって得られます。DKIMのCNAMEレコードがCNAMEによる委任でd=yourdomain.comの署名を行い、DKIMの緩和されたアライメントによってDMARCに成功します。SPFが重要になるのは専用IPの場合だけです。自社ドメインにカスタムのバウンス/Return-Path用サブドメインを設定でき、include:spf.brevo.comで許可とアライメントの両方が得られます。名前に関する注意点が2つあります。非推奨のspf.sendinblue.comではなくspf.brevo.comを使ってください(旧Sendinblueのホストは今のところ解決される可能性がありますが、廃止が進められています)。また、include:sendinblue.comをそのまま追加してはいけません。これはBrevoの顧客向け送信用includeではなく、無関係な送信者をレコードに取り込み、ルックアップを無駄にするだけです。
2つの設定方法
CNAMEによるDKIM(推奨)
- 2つのCNAMEレコード(brevo1._domainkey/brevo2._domainkey、一部のアカウントではmail._domainkey/mail2._domainkey)で署名をBrevoに委任します。秘密鍵はBrevoが保持します
- 2048ビットの鍵をBrevoがローテーションします。鍵が変わってもDNSを編集し直す必要はありません
- 新しく認証するドメインのデフォルトで、最も強固なDKIMの設定です
- SPFのDNSルックアップ回数を増やさず、実際にDMARCのアライメントを一致させるのはこの方式です
TXTによるDKIM(従来方式)
- mail._domainkeyに、静的な公開鍵(k=rsa; p=...)を持つTXTレコードを1つ置きます
- 1024ビットの鍵で、変更があれば手動で公開し直す必要があります
- 表示されるのは、古いアカウントかCNAMEを使えない場合だけです
- Brevoでは、画面に合うタブを選択してください。可能になったらCNAME方式に移行してください
設定手順
- 1
Domainsページを開く
ログインし、右上のアカウント名をクリックしてSenders, Domains & Dedicated IPsに移動し、Domainsタブを開きます。
- 2
ドメインを追加または選択
「Add a domain」をクリックしてyourdomain.com(Fromアドレスで使う組織ドメイン)を入力するか、すでに一覧にあるドメインの横の「Authenticate」をクリックします。
- 3
自動または手動の設定を選択
Brevoには、DNSプロバイダーにログインしてレコードを追加してくれる「Authenticate automatically」と、コピーするレコードを表示する手動の方法があります。DNSホストがサポートされていない場合は手動を選んでください。
- 4
Brevoに表示されたレコードをコピー
Brevoには、所有権確認用のBrevo codeのTXTレコード、DKIMレコード、DMARCのTXTレコードが表示されます。DKIMレコードは2つのCNAMEで、通常はbrevo1._domainkeyとbrevo2._domainkeyです。一部のアカウントでは、mail._domainkeyとmail2._domainkey、またはmail._domainkeyの従来方式のTXTレコード1つが表示されます。それぞれのホストと宛先はアカウントごとに固有なので、正確に控えてください。
- 5
Brevo codeのTXTレコードを追加
ルートドメイン(ホストは@または空欄)に、値がbrevo-code:<your value>のTXTレコードを作成します。これは所有権を証明するもので、それ自体がメールを認証するわけではありませんが、これがないと認証は完了しません。
- 6
DKIM CNAMEを2つ追加
2つのDKIMレコードをCNAMEとして作成します。通常のラベルはbrevo1._domainkeyとbrevo2._domainkeyで(一部のアカウントではmail._domainkeyとmail2._domainkey)、画面に表示された宛先b1.<account>.dkim.brevo.comとb2.<account>.dkim.brevo.comを指します。名前と宛先は必ずBrevoの表示どおりに正確にコピーしてください。管理画面がドメインを自動で付加する場合はラベル(例:brevo1._domainkey)だけを入力し、タイプをTXTに変更しないでください。
- 7
Cloudflareのフラット化とプロキシを無効にする
DNSがCloudflare上にある場合は、CNAME flatteningをオフにし、各DKIMのCNAMEレコードを「DNS only」(グレーのクラウド)に設定します。フラット化された、またはオレンジのクラウドでプロキシが有効なCNAMEは、Brevoの宛先ではなくCloudflareのIPを返し、確認に失敗します。
- 8
DMARCレコードを公開または更新
_dmarc.yourdomain.comに、v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.comで始まるTXTレコードを追加します。Brevoの流れでは完全な認証の一部としてDMARCレコードを公開するので(いずれにせよGmailとYahooも必須としています)、省略しないでください。_dmarcレコードはドメイン全体で1つだけにしてください。
- 9
専用IPがなければSPFのincludeは追加しない
標準の共有IP送信では、ルートドメインのSPFレコードを変更する必要はありません。Brevoの流れではSPFレコードを求められず、include:spf.brevo.comではアライメントも一致しません。カスタムReturn-Pathのある専用IPを使っている場合に限り、include:spf.brevo.comを1つのv=spf1レコードにまとめます。
- 10
「Authenticate this email domain」をクリック
Brevoに戻り、ドメインページの下部にある「Authenticate this email domain」をクリックします。各レコードが解決されると、緑のチェックマーク/「Value matched」が表示されます。DNSの反映は通常数分ですが、最大24~48時間かかることがあります。
- 11
実際のメールで確認
認証したドメインのアドレスからテストメールを送り、Gmailで開いてShow originalを選びます。DKIM: PASSが自社ドメインを示し、DMARC: PASSと表示されていれば成功です。SPFにBrevoのエンベロープドメインが表示されることがありますが、共有IPではこれが想定どおりです。
追加するレコード
正確な値はBrevoのセットアップウィザードで生成されます。以下は、DNSホストに追加するレコードの形式を示したものです。
| タイプ | ホスト | 値 |
|---|---|---|
| TXT | @ | brevo-code:a1b2c3d4e5f6a1b2c3d4e5f6Brevo code:ドメインの所有権の確認用です。正確な値はダッシュボードに表示されます(ホストはルートドメイン/@) |
| CNAME | brevo1._domainkey | b1.yourdomain-a1b2.dkim.brevo.comDKIM鍵1(2048ビット、自動ローテーション)。宛先はアカウントごとに固有です。一部のアカウントではこのCNAMEレコードのラベルがmail._domainkeyなので、Brevoに表示された名前と宛先を正確にコピーしてください |
| CNAME | brevo2._domainkey | b2.yourdomain-a1b2.dkim.brevo.comDKIM鍵2(2048ビット、自動ローテーション)。一部のアカウントではラベルがmail2._domainkeyです。このペアがDMARCのアライメントをもたらします |
| TXT | _dmarc | v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.comDMARCポリシーです。ドメインごとに1つで、アライメントはDKIMが担います。Brevoの完全な認証の流れの一部です |
| TXT | @ | v=spf1 include:spf.brevo.com ~all任意で、専用IPの場合のみ使います。標準の流れには含まれず、共有IPではSPFのアライメントは一致しません。追加する場合は、1つのSPFレコードにまとめてください |
ルートドメインのSPF(v=spf1)のTXTレコードは1つだけにし、すべての送信元をこの1行にまとめてください。SPFレコードが2つあると、それ自体がエラーになります。
DNSルックアップの10回制限
SPFのDNSルックアップは10回までに厳格に制限されており、超えるとpermerrorを返して、どの受信側でも検証されなくなります。Brevoの設定がこの上限のうち何回を消費するかは、次のとおりです。
Brevoは10回のルックアップのうち1回を消費します。ip4:とip6:のメカニズムはルックアップを消費しません。
DKIM
DKIMはDMARCのアライメントを担うため、Brevoの認証の中心です。新しく認証するドメインには、Brevoが2つのCNAMEレコードを発行します。通常はbrevo1._domainkey.yourdomain.comとbrevo2._domainkey.yourdomain.comで(一部のアカウントではmail._domainkeyとmail2._domainkeyと表示されます)、それぞれb1.<account>.dkim.brevo.comとb2.<account>.dkim.brevo.comを指します。<account>の部分はアカウントごとに固有です。レコード名と宛先は、必ず画面に表示されたものを正確にコピーしてください。これらはBrevoに委任するCNAMEなので、秘密鍵はBrevoが保持し、2つのセレクターの背後で公開する2048ビットの鍵をローテーションできます。DNSを編集し直す必要はなく、公開鍵を貼り付けることもありません。古いアカウントでは代わりに、mail._domainkeyに静的な1024ビットの鍵(k=rsa; p=MIIBIjAN...)を持つTXTレコードが1つ表示される場合があります。これも機能しますが、推奨はCNAME方式です(2048ビットで自動ローテーション)。Brevoでは、画面に表示されたレコードタイプに合うタブを選択してください。いずれの場合も、DKIM署名にはd=yourdomain.comが含まれるため、緩和されたアライメントのもとでFromドメインと一致し、それだけでDMARCを満たします。
DMARC
DMARCは、ルートドメインに設定する別のポリシーレコードです。Brevoの現在の流れでは、ドメインの完全な認証の一部として公開するので、任意ではなく必須と考えてください。_dmarc.yourdomain.comに、v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.comで始まるTXTレコードを公開します。p=noneは監視のみのため、Brevoのメールが自社ドメインとアライメントの一致した状態でDKIMに成功することを確認している間、配信には影響しません。1~2週間、集計レポート(rua)を確認します。BrevoのアライメントはSPFではなくDKIMで一致するので、DKIMの結果に自社ドメインがあるかどうかを見ます。アライメントが安定して一致するようになったら、p=quarantine、最終的にp=rejectへと段階的に引き上げます。送信者がいくつあっても、_dmarcレコードはドメイン全体で1つだけにし、Brevo用に2つ目を追加しないでください。参考までに、Brevo自身のドメインはp=rejectを公開しています。
正しく設定できたか確認する
ダッシュボードのバッジだけで判断せず、実際のメールで確認してください。Brevoで「Authenticate this email domain」をクリックすると、各レコードが解決された時点で緑のチェックマーク/「Value matched」が表示されます。次に、認証したドメインのアドレスから自分宛てにテストメールを送り、Gmailで開いて3点メニューからShow originalを選びます。DKIM: PASSが自社ドメインを示し、DMARC: PASSと表示されていれば成功です。SPFには自社ドメインではなくBrevoのエンベロープドメイン(sender-sib.com/mailin.fr配下)が表示されることがよくあります。共有IPではこれが想定どおりで、アライメントはDKIMが担うので問題ありません。Qualisendのドメイン診断でドメインをチェックすれば、Brevo code、2つのDKIM用CNAME、DMARCレコードがすべて解決されることを確認できます。集計レポートが届き始めたら、DMARCレポート解析にレポートをドロップします。Brevoが、アライメントが一致しDKIMに成功している送信元として表示されるはずです。
よくある注意点
- 適用範囲
BrevoではSPFに気を取られないでください。共有IPでは、エンベロープがBrevoのドメイン(sender-sib.com)なので、include:spf.brevo.comを追加してもDMARCには成功しません。アライメントを一致させるのはDKIMです。SPFのアライメントのデバッグに時間をかけないでください。
- DNS設定
CloudflareのCNAME flatteningでDKIMが機能しなくなります。「CNAME flattening」を無効にし、DKIMのCNAMEレコードを「DNS only」(グレーのクラウド)に設定してください。フラット化された、またはオレンジのクラウドでプロキシが有効なCNAMEは、Brevoの宛先ではなくCloudflareのIPに解決され、確認に失敗します。
- DNS設定
非推奨のspf.sendinblue.comではなくspf.brevo.comを使ってください。また、include:sendinblue.comをそのまま追加してはいけません。これはBrevoの顧客向け送信用includeではなく、無関係な送信者をレコードに取り込み、ルックアップを無駄にするだけです。
- DNS設定
ホスト欄でのドメインの重複:多くのレジストラはドメインを自動で付加するため、brevo1._domainkey.yourdomain.comと入力するとbrevo1._domainkey.yourdomain.com.yourdomain.comになります。管理画面がドメインを付加する場合は、ラベル(brevo1._domainkey/brevo2._domainkey、またはBrevoに表示されるセレクター名)だけを入力してください。
- 適用範囲
DMARCは現在、Brevoの流れの一部です。必須と考えて少なくともp=noneを追加し、_dmarcレコードはドメインに1つだけにしてください。
- 適用範囲
送信者を1つ(Fromアドレス1つ)確認するだけでは、ドメイン認証になりません。送信はできますが、「via」の表示は残り、アライメントも得られません。ドメインを認証する必要があります。
- 認証失敗の原因
SPFのTXTレコードは1つだけにしてください。専用IPのためにincludeを追加する場合は、既存のv=spf1レコードにまとめます。SPFレコードが2つあると、それ自体がPermErrorになります。
- DNS設定
Brevo codeのTXTレコードは確認専用ですが、設定後も削除しないでください。メールに署名するものではありませんが、削除するとドメインの認証済みステータスが失われる場合があります。
SPFレコードを作成
Brevoでは、ルートドメインに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:はカウントされません。
送信ドメイン認証の設定が済んだら、次は検証済みのクリーンなリストへの配信です。
リストを検証BrevoのSPFに関するよくある質問
関連記事
トランザクションメール・APIの他のサービス
すべてのSPFガイド公開したら、ドメイン診断ですべてのレコードが正しく解決されることを確認し、DMARCレポート解析で自社ドメインを名乗って送信している送信元を把握します。作成ツールではすべての送信元を確認できます。ただし、認証は到達率対策の半分にすぎません。送信IPやドメインがブラックリストに掲載されていると、SPFの設定がどれほど適切でも迷惑メールに振り分けられます。そのため、ブラックリスト監視で掲載状況を確認しておくことをおすすめします。
認証の次は、リストをクリーンに保つ
SPF、DKIM、DMARCに成功すれば受信トレイに届き、クリーンなリストならその状態を維持できます。お手持ちのリストも検証してクリーニングできます。100クレジット無料、クレジットカード登録不要で始められます。