MailjetのSPF・DKIM・DMARC設定。
Mailjet(現在はSinch傘下)では、Senders & Domainsから送信ドメインを認証します。DMARCの成功を実際に左右するのはSPFではなくDKIMのレコードです。ドメインを追加して確認すると、Mailjetはmailjet._domainkeyセレクターに公開鍵を格納するDKIMのTXTレコードを生成し、あわせてSPFの行(v=spf1 include:spf.mailjet.com ?all)を表示します。設定全体を左右する注意点は、MailjetがデフォルトでバウンスをMailjet自身のReturn-Pathドメイン(bnc3.mailjet.com)で処理することです。このためSPFのincludeはMailjetのインフラに対してチェックされ、Fromドメインとアライメントが一致することはありません。DMARCを支えるのは、DKIM署名(d=yourdomain.com)です。mailjet._domainkeyレコードを公開してDMARCポリシーを追加すれば、これまでMailjetの共有インフラ名義だったメールが、自社ドメインのメールとして認証されるようになります。
Mailjetを認証すべき理由
Mailjetのドメイン認証は形式的な作業ではなく、メールが受信トレイに届くかどうかを左右します。2024年2月1日以降、GmailとYahooは、すべての大量送信者(1日あたり約5,000通以上)に対し、SPF、DKIM、DMARCにアライメントが一致した状態で成功することを義務付けています。Microsoftも2025年に、Outlook.com/Hotmail/Live宛ての大量メールに同じ要件の適用を始めました。認証が済むまで、Mailjetはmailjet.comの署名を付けて共有インフラから送信します。受信者から見ると暗号学的に自社のメールとは確認できず、Fromアドレスのアライメントも一致しません。DMARCには成功できず、レピュテーションも未認証のMailjet送信者全体と共有されます。さらにMailjet特有の事情として、DKIMは欠かせません。Mailjetは独自のReturn-Path(バウンス)ドメインを維持するため、デフォルトではSPFのアライメントが自社ドメインと一致することはなく、DMARCの成功を支えられる仕組みはDKIMだけです。mailjet._domainkeyレコードを省くと、アライメントが一致する認証はひとつもなくなります。設定すれば(2024年4月以降に追加したドメインには、Mailjetが2048ビットの鍵を自動で作成します)、署名によって築いたレピュテーションは自社ドメインに蓄積されます。
MailjetにおけるSPFの実情
Mailjetは「include」型のサービスとして分類されており、spf.mailjet.comは実在する有効でフラットなSPFレコードです。~allで終わるip4範囲の一覧なので、消費するDNSルックアップは1回だけで、古いガイドにある2~3回ではありません。ただし、Mailjet特有の事情により、このincludeはほとんど意味を持ちません。SPFは常にエンベロープ送信者(Return-Path)に対して評価されますが、デフォルトのReturn-Pathは自社ドメインではなく、Mailjet独自のバウンス用ドメイン(bnc3.mailjet.com)です。そのため、受信側がMailjetのメールにSPFチェックを実行すると、調べるのはMailjetのバウンス用ドメインのSPFです。ルートドメインに公開したinclude:spf.mailjet.comは、そのメールでは参照されません。SPFが「成功」しても、それはmailjet.comとしての成功であって自社ドメインとしてではないため、アライメントは一致せず、DMARCにも寄与しません。MailjetのガイダンスがDKIM優先であり、includeの公開自体が不要だとするガイドがいくつもあるのは、このためです。アライメントが一致してDMARCの成功を支えるのは、d=yourdomain.comで署名するDKIM(mailjet._domainkeyのTXT)です。SPFのアライメントを実際に一致させる唯一の方法は、パーソナライズされたReturn-Pathです。バウンス用サブドメイン(例:bnc3.yourdomain.com)をCNAMEでbnc3.mailjet.comに向け、Mailjetサポートにチケットを起票してドメインに紐づくAPIキーを伝え、有効化してもらいます。これは有料プランの機能で、セルフサービスの切り替えはなく、カスタムReturn-PathはAPIキーごとに1つです。実務上は、ルートドメインに1つだけ置けるSPFレコードを、自社ドメインをエンベロープに実際に入れてくれる送信者(Google Workspace、Microsoft 365、トランザクションメールのリレーなど)のために確保します。MailjetについてはDKIMに任せ、include:spf.mailjet.comでDMARCの結果が変わるとは考えないでください。
2つの設定方法
DKIM署名:mailjet._domainkey(アライメントが一致)
- mailjet._domainkeyセレクターに設定する1つのTXTレコードで、Mailjet内でドメインごとに生成
- d=yourdomain.comで署名するため、緩和されたDKIMアライメントで一致し、これだけでDMARCの成功を支えられる
- 新しいドメイン(2024年4月25日以降)には2048ビットの鍵(4096にも対応)。古いドメインは1024ビットで、アップグレード可能
- DKIMレコードでありSPFのメカニズムではないため、SPFのルックアップを消費しない
SPFのinclude:include:spf.mailjet.com(成功するがアライメントは不一致)
- 実在するフラットなincludeでルックアップは1回だが、チェック対象は自社ドメインではなくMailjetのバウンス用ドメインbnc3.mailjet.com
- デフォルト(共有)のReturn-PathではFromドメインとアライメントが一致することはなく、DMARCの役に立たない
- Mailjetのみの場合、DMARCのためには任意。同じレコードで他の送信者も許可する場合にのみ追加する価値がある
- SPFのアライメントを本当に一致させるには、パーソナライズされたReturn-Pathが必要(bnc3のCNAMEとMailjetサポートへのチケット、有料プラン)
設定手順
- 1
Senders & Domainsを開く
app.mailjet.comにログインし、右上のアカウントメニューを開いて、Senders & Domains → Domainsに進みます(旧UI:Account Settings → Domains & Sender addresses)。Fromアドレスで使うドメインを、ここで追加して確認します。
- 2
ドメイン全体を追加して確認
「Add a Sender Domain」をクリックし、yourdomain.com(1つのアドレスではなく組織ドメイン)を入力します。求められたら所有権を確認します。Mailjetは確認リンクをメールで送るか、確認用のTXTレコードの公開を求めます。確認するのは1つのアドレスではなくドメインです。DKIM鍵の生成は、ドメイン全体を確認して初めて可能になります。
- 3
SPF/DKIM Authenticationを開く
ドメインの横にあるManageまたは歯車(⚙)アイコンをクリックし、「Setup SPF/DKIM Authentication」を選びます。mailjet._domainkeyセレクターのDKIM TXTレコードと、そのドメインのSPFの行が表示されます。
- 4
DKIMレコードをコピー
DKIMのホスト(mailjet._domainkey)とその値全体(v=DKIM1; k=rsa; p=<long public key>)をコピーします。DMARCにとって重要なのはこのレコードです。途中で切れたものではなく、鍵全体をコピーしてください。
- 5
DKIMのTXTを公開
DNSホストでTXTレコードを追加します。ホストはmailjet._domainkey、値はMailjetの表示どおりです。2048ビットの鍵はTXTの1文字列の上限である255文字より長いため、多くの管理画面では1つのレコード内に引用符で囲んだ複数の断片として保存されます。表示どおりに貼り付けるか、分割された値の再結合を管理画面に任せてください。改行を加えたり、引用符を削除したりしないでください。
- 6
ルートドメインのSPFはアライメントが一致する送信者のために残す(includeは任意)
Mailjetのメールを認証するためにinclude:spf.mailjet.comを追加する必要はありません。認証はDKIMが担い、Return-PathをMailjetが所有しているためincludeのアライメントは一致しません。それでも追加したい場合や、ルートドメインのSPFに他の送信者がすでに含まれている場合は、v=spf1レコードを1つだけにしてinclude:spf.mailjet.comをそこにまとめます(2つ目のSPFレコードは絶対に公開しないでください)。末尾はMailjetの例にある?allではなく、自社で決めた~allまたは-allにします。
- 7
DMARCレコードを公開
MailjetはDMARCを作成しません。ホスト_dmarcに、v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.comのTXTレコードを追加します。p=noneは監視のみのため、MailjetのDKIMのアライメントが一致することを確認している間、何も影響を受けません。_dmarcレコードはドメイン全体で1つだけにしてください。
- 8
(任意)SPFのアライメント用にパーソナライズされたReturn-Pathを設定
SPFのアライメントもどうしても一致させたい場合で、有料プランを利用している場合のみ行います。バウンス用サブドメインのCNAME(例:bnc3.yourdomain.com → bnc3.mailjet.com)を追加し、Mailjetサポートにチケットを起票して、パーソナライズされたReturn-Pathの有効化を依頼します。その際、ドメインに紐づくAPIキーを伝えてください。ダッシュボードにセルフサービスの設定はなく、カスタムReturn-PathはAPIキーごとに1つです。
- 9
Mailjetと実際のメールで確認
SPF/DKIM Authenticationページに戻り、「Force a check」(Force Refresh)をクリックします。レコードが解決されるとチェックが緑に変わります(通常は数分、最大で24~48時間)。次に、そのドメインのアドレスからテストメールを送り、Gmail → ⋮ → Show originalで開いて、DKIM: PASS(d=yourdomain.com)とDMARC: PASSを確認します。SPFには通常、自社ドメインではなくbnc3.mailjet.comのバウンス用ドメインが表示されます。これはデフォルトのReturn-Pathでは想定どおりです。
追加するレコード
正確な値はMailjetのセットアップウィザードで生成されます。以下は、DNSホストに追加するレコードの形式を示したものです。
| タイプ | ホスト | 値 |
|---|---|---|
| TXT | mailjet._domainkey | v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A…(public key from Mailjet)DMARCのアライメントが一致するレコードです。ドメインごとに生成され、新しいドメインは2048ビットの鍵(2024年4月25日以降)、古いドメインは1024ビットです。4096にも対応しています。例です。正確な値はMailjetのSPF/DKIM Authentication画面からコピーしてください。 |
| TXT | _dmarc | v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com自分で追加するレコードで、Mailjetが作成することはありません。ドメインごとに1つだけにします。p=noneから始め、quarantine/rejectへと段階的に引き上げます。アライメントを支えるのはDKIMです。 |
| TXT | @ | v=spf1 include:spf.mailjet.com ~all任意です。spf.mailjet.comはルックアップ1回のフラットなincludeですが、チェック対象は自社ドメインではなくMailjetのbnc3のReturn-Pathであるため、アライメントは一致しません。必要な場合にのみ、ルートドメインにある1つのSPFレコードにまとめてください。末尾には自社で決めた~all/-allを使います(Mailjetのダッシュボードの例は?allで終わります)。 |
| CNAME | bnc3 | bnc3.mailjet.com任意で設定する、SPFのアライメント用のパーソナライズされたReturn-Pathです。有料プランの機能で、有効化にはMailjetサポートへのチケット(ドメインのAPIキーを記載)が必要です。セルフサービスのUIにはありません。ホストと宛先は例です。 |
ルートドメインのSPF(v=spf1)のTXTレコードは1つだけにし、すべての送信元をこの1行にまとめてください。SPFレコードが2つあると、それ自体がエラーになります。
DNSルックアップの10回制限
SPFのDNSルックアップは10回までに厳格に制限されており、超えるとpermerrorを返して、どの受信側でも検証されなくなります。Mailjetの設定がこの上限のうち何回を消費するかは、次のとおりです。
Mailjetは10回のルックアップのうち1回を消費します。ip4:とip6:のメカニズムはルックアップを消費しません。
DKIM
MailjetのDKIMは、mailjet._domainkeyセレクターに設定する1つのTXTレコードです。重要なのは、委任するCNAMEではなく、自分で貼り付けるTXTだという点です。つまり(SendGrid、Brevo、Microsoft 365とは異なり)委任も鍵の自動ローテーションもありません。Mailjetが公開鍵(v=DKIM1; k=rsa; p=…)を表示するので、それをDNSに公開します。鍵を再生成した場合は、新しい値を手作業で公開し直す必要があります。2024年4月25日以降、Mailjetは新しく追加されたドメインに2048ビットの鍵を生成します(4096ビットにも対応)。古いドメインは1024ビットのままなので、再生成してアップグレードしてください。2048ビットの鍵はTXTの1文字列の上限である255文字より長いため、多くのDNS管理画面では、1つのレコードの中に引用符で囲んだ複数の断片として保存されます。論理的に1つのレコードのまま維持し、余計な改行を入れないでください。Mailjetには注意すべき点が2つあります。1つ目は、DKIM鍵の生成と再生成ができるのはドメイン全体を確認した場合に限られることです。1つの送信者アドレスだけを確認した状態では、「Regenerate Key」ボタンがグレーアウトして使えません。2つ目は、署名がd=yourdomain.comであるため、このDKIMレコードこそがアライメントを一致させてDMARCの成功を支える仕組みになることです。MailjetのReturn-Pathの仕様上、SPFではこれができません。mailjet._domainkeyのTXTを表示どおりに公開し、解決されるのを待ってからForce a checkを押すと、MailjetのDKIMチェックが緑に変わります。
DMARC
DMARCは、自社ドメインに設定する別のポリシー用TXTレコードで、Mailjetは作成しません。DNSホストで追加してください。_dmarc.yourdomain.comに、v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.comで始まるTXTレコードを公開します。p=noneは監視のみのため、配信には影響しません。その間に集計レポート(rua)で、Mailjetのメールが認証に成功していることを確認します。MailjetはSPFではなくDKIMでアライメントを一致させるので、レポートでは特に、自社ドメインがDKIMの結果で成功しているかを確認します。MailjetのメールでDMARCを支えるのはDKIMだけです(デフォルトのReturn-PathではSPFのアライメントは一致しません)。p=noneから先に進む前に、mailjet._domainkeyレコードの確認が済み、成功していることを確かめてください。そうしないと、ポリシー適用によってMailjetのメールが影響を受けるおそれがあります。アライメントが安定して一致するようになったら、p=quarantine、最終的にp=rejectへと段階的に引き上げます。送信者がいくつあっても、_dmarcレコードは組織ドメイン全体で1つだけにしてください。Mailjet専用に2つ目を追加してはいけません。
正しく設定できたか確認する
ダッシュボードのチェックマークだけで判断せず、実際のメールで確認してください。認証したドメインのアドレスからテストメールを送り、Gmailで開いて⋮ → Show originalを選びます。DKIM: PASS(d=yourdomain.com)とDMARC: PASSと表示されていれば成功です。SPFには通常、自社ドメインではなくbnc3.mailjet.comのバウンス/Return-Pathドメインが表示されます。これはデフォルトの共有Return-Pathでは想定どおりで、DKIMがアライメントを支えているので問題ありません(SPFに自社ドメインが表示されるのは、パーソナライズされたReturn-Pathを設定した場合だけです)。Mailjetでは、SPF/DKIM Authenticationページで「Force a check」を使います。緑のチェックとDMARC準拠の表示が出るはずです。次に、Qualisendのドメイン診断でドメインをチェックし、mailjet._domainkeyのDKIMレコードとDMARCレコードが正しく解決されることを確認します。集計レポートが届き始めたら、DMARCレポート解析にレポートをドロップします。Mailjetが、アライメントが一致してDKIMに成功している送信元として表示されるはずです。
よくある注意点
- 認証失敗の原因
MailjetではSPFはほぼ意味を持ちません。includeは自社ドメインではなくMailjet独自のReturn-Pathドメイン(bnc3.mailjet.com)に対して評価されるため、ルートドメインにinclude:spf.mailjet.comを公開してもMailjetのDMARCの結果は変わりません。アライメントを一致させるのはDKIMです。SPFのアライメントのデバッグに時間をかけないでください。
- DNS設定
DKIMは委任するCNAMEではなく貼り付けるTXTレコードなので、鍵の自動ローテーションはありません。MailjetでDKIM鍵を再生成したら、新しい値を自分でDNSに公開し直す必要があります。
- 適用範囲
DKIM鍵のGenerate/Regenerateボタンは、ドメイン全体を確認しない限りグレーアウトしています。1つの送信者アドレス(you@yourdomain.com)の確認では足りません。DKIMを使えるようにするには、ドメイン自体を確認してください。
- 認証失敗の原因
2048ビットの鍵(2024年4月25日以降に追加したドメインのデフォルト)はTXTの1文字列の上限である255文字を超えるため、引用符で囲んだ複数の断片として保存されます。MailjetやGmailが鍵を無効と報告する場合、よくある原因は、DNS管理画面での分割の崩れ、余計な改行、引用符の欠落のいずれかです。
- 認証失敗の原因
SPFのTXTレコードは1つだけにしてください。include:spf.mailjet.comを追加する場合や、すでにGoogle Workspace、Microsoft 365などで送信している場合は、すべてを1つのv=spf1レコードにまとめます。SPFレコードが2つあると、それ自体がPermErrorになります。また、Mailjetの例にある?allは、自社で決めた~allまたは-allに置き換えてください。
- DNS設定
SPFのアライメントはセルフサービスでも無料でもありません。一致させる唯一の方法はパーソナライズされたReturn-Pathで、バウンス用CNAME(bnc3.yourdomain.com → bnc3.mailjet.com)と、有効化のためのMailjetサポートへのチケット(ドメインのAPIキーを記載)が必要で、有料プランが前提です。UIに切り替えはありません。
- 適用範囲
1つの送信者アドレスの確認は、ドメイン認証ではありません。送信はできるようになりますが、DKIM鍵もドメイン単位のアライメントも得られず、メールにはMailjet名義の表示が残ります。ドメイン全体を追加して確認してください。
- 適用範囲
MailjetはDMARCレコードを作成しませんが、GmailとYahooは大量送信者にDMARCレコードを求めています。少なくともp=noneを自分で追加し、_dmarcレコードはドメインごとに1つだけにしてください。
SPFレコードを作成
以下ではMailjetがあらかじめ選択されています。他に利用している送信プラットフォームを追加し、1つにまとめたレコードを公開してください。
このドメイン自身のサーバー
ドメインが(上記のサービスを経由せず)直接メールを送信する場合は、ドメイン自体を許可します。
その他の送信元・IP
リストにないもの(別のサービスのSPFホストや特定のIPアドレス)を追加します。
接頭辞のinclude:は自動で付加されます。サービスのドキュメントに記載されているホスト名を入力してください。
その他すべての送信元へのポリシー
上記に記載されていないサーバーからのメールを、受信側がどう処理すべきかを指定します(allメカニズム)。
- ルートドメインにTXTレコードとして公開します。ホストは@(ドメインそのもの)、値は上記の文字列全体です。
- SPFレコードは1つのドメインにつき1つだけにします。すべての送信元をこの1行にまとめてください。v=spf1で始まるTXTレコードが2つあると、両方とも無効になります。
- DNSルックアップは10回以内に収めてください。include:、a、mxはそれぞれ1回とカウントされ、includeは内部でさらにルックアップを発生させることがあります。ip4:とip6:はカウントされません。
送信ドメイン認証の設定が済んだら、次は検証済みのクリーンなリストへの配信です。
リストを検証MailjetのSPFに関するよくある質問
関連記事
トランザクションメール・APIの他のサービス
- Mailtrap
- Mandrill (Mailchimp Transactional)
- Postmark
- Resend
- Scaleway Transactional Email
- SendGrid
- SMTP.com
- SMTP2GO
公開したら、ドメイン診断ですべてのレコードが正しく解決されることを確認し、DMARCレポート解析で自社ドメインを名乗って送信している送信元を把握します。作成ツールではすべての送信元を確認できます。ただし、認証は到達率対策の半分にすぎません。送信IPやドメインがブラックリストに掲載されていると、SPFの設定がどれほど適切でも迷惑メールに振り分けられます。そのため、ブラックリスト監視で掲載状況を確認しておくことをおすすめします。
認証の次は、リストをクリーンに保つ
SPF、DKIM、DMARCに成功すれば受信トレイに届き、クリーンなリストならその状態を維持できます。お手持ちのリストも検証してクリーニングできます。100クレジット無料、クレジットカード登録不要で始められます。