MarketoのSPF・DKIM・DMARC設定。
Marketo(Adobe Marketo Engage)は、Admin → Email → SPF/DKIMの画面から送信ドメインを認証します。CNAMEによる委任で認証するメール配信サービス(ESP)とは異なり、Marketoでは自社ドメインに1つだけ置くSPFレコードに共有のinclude(include:mktomail.com)を追加する必要があります。DKIMの設定は同じ画面で行う2つ目の手順です。Add Domainをクリックしてセレクター(Marketoのデフォルトはm1)と2048ビットの鍵サイズを選ぶと、MarketoがTXTレコードを生成するので、m1._domainkey.yourdomain.comに公開します。多くのMarketo管理者がつまずくのは次の点です。Marketoは独自のバウンス用ドメインmktomail.comのReturn-Pathで送信するため、SPFのincludeは成功してもアライメントは一致しません。DMARCの成功を担うのは、あくまでDKIMです。DMARC自体は3つ目のレコードで、Marketoが代わりに作成することはありません。
Marketoを認証すべき理由
Marketoのドメイン認証は、キャンペーンが受信トレイに届くかどうかを左右します。Marketoは、まさに新しいルールの対象となる大量送信のB2B送信者です。2024年2月以降、GmailとYahooは、すべての大量送信者(1日あたり約5,000通以上)に対し、SPF、DKIM、DMARCにアライメントが一致した状態で成功することを義務付けています。Microsoftも2025年5月に、Outlook.com/Hotmail/Live宛てのメールに同じ要件の適用を始めました。そのため、ナーチャリングやニュースレターを配信するマーケティングオートメーションプラットフォームは、認証しなければ配信を制限され、迷惑メールに振り分けられます。認証するまで、Marketoは独自のデフォルトのDKIMドメインでメールに署名します。Gmailには「via mktomail.com」やmailed-byの表記が付き、Fromアドレスが自社のものであることを暗号的に証明できず、DMARCにも成功できません。構築した送信レピュテーションも、認証していない他のMarketoテナントすべてと共有されます。Marketoならではの理由から、DKIMは欠かせません。MarketoはエンベロープのReturn-Pathを独自のmktomail.comドメインに置いたままにするため、デフォルトではSPFのアライメントがFromドメインと一致しません。d=yourdomain.comで署名したDKIMが、アライメントを一致させてDMARCの成功を担う唯一の仕組みです。SPFのincludeとカスタムDKIMを設定すれば、すべてが揃います。DKIMのアライメントが一致し、「via」の表記が消え、DMARCに成功し、レピュテーションは自社ドメインに蓄積されます。
MarketoにおけるSPFの実情
Marketoは本来の意味で「include」を使うサービスです。mktomail.comはMarketoの全顧客が追加する実在の共有includeで、Adobeのドキュメントでも、送信ドメインにv=spf1 ... include:mktomail.com ~allを公開する(または既存のSPFレコードにincludeをまとめる)よう案内しています。実際のDNSで確認したところ、mktomail.comはネストしたincludeのない、ip4:の範囲だけのフラットなレコード1つに解決されます。そのため、DNSルックアップの10回のうち、消費するのはちょうど1回です。一部の古いガイドにある2回や3回ではありません。ただし、これを追加するのはSPFを正しく保つためであり、DMARCのアライメントのためではありません。Marketoでは、この区別がすべてです。SPFのチェックはReturn-Path(エンベロープのMAIL FROM)に対して行われますが、MarketoはデフォルトでこのReturn-Pathを独自の*.mktomail.comバウンス用ドメインに置いたままにします。そのため、includeによってMarketoのIPアドレスが許可され、チェック自体には成功しますが、成功するのはmktomail.comとしてです。表示上のFromドメインとはアライメントが一致せず、DMARCはアライメントが一致したSPFしか評価しません。Adobeもこの点を明言しており、SPFではなくDKIMでDMARCのアライメントを取ることを推奨し、厳格なSPFアライメントはMarketo Engageではサポートも推奨もされないとしています。したがって、include:mktomail.comは追加し(レコードに必要で、送信IPを許可します)、SPFレコードは1つだけにして、アライメントはDKIMに任せます。補足が2点あります。Adobeの例では先頭にmx ip4:[your corp IP]も付いていますが、この部分はMarketoではなく自社のメールサーバー用なので、そのサーバーを運用していなければ削除してください。また、SPFのアライメントも一致させる唯一の方法がBranded Return-Path(branded envelope_from)です。MarketoのShared/Trusted IPでは無料で提供され、Return-Pathを自社ドメインのサブドメインに移します。
2つの設定方法
include:mktomail.comとカスタムDKIM(Marketoのドキュメントに記載された設定)
- 1つだけのSPFレコードにinclude:mktomail.comを追加(ルックアップ1回)し、Marketoの送信IPを許可します
- カスタムDKIM(m1._domainkey)を設定し、メールをd=yourdomain.comで署名してDMARCのアライメントを一致させます
- DKIMのアライメントでDMARCに成功します。AdobeがMarketo Engage向けに明確に推奨している、サポート対象の方法です
- 共有のTrusted IPで追加の設定なしに機能します。GmailやYahoo、MicrosoftのルールはDKIMだけで満たせます
SPFのアライメントも一致させるBranded Return-Pathを追加(任意)
- MarketoのShared/Trusted IPでは無料です。エンベロープのReturn-Pathを自社ドメインのサブドメインに移します
- SPFのアライメントも一致するので、DMARCはSPFとDKIMの両方で成功できます(転送に強くなります)
- Marketo側でのbranded envelope_fromの設定と、MXレコードの変更が必要です。自分でDNSに貼り付けるだけでは完了しません
- あると望ましいものの、必須ではありません。先にDKIMを設定し、SPFのアライメントも一致させたい場合に追加してください
設定手順
- 1
Admin → Email → SPF/DKIMを開く
Marketoの管理者として、Adminエリアを開き、Email → SPF/DKIMに進みます。この1つの画面で、SPFのステータスとカスタムDKIMのドメインの両方を管理します。SPFレコードとDMARCレコード自体は、ここではなくDNSホストで追加します。このページでは、DKIM鍵の生成と、その後の確認(Check DNS)を行います。
- 2
SPFのincludeを追加(既存なら1つにまとめる)
DNSホストで、送信ドメインに1つだけ置くSPFのTXTレコードにinclude:mktomail.comを追加します。Adobeの例はv=spf1 mx ip4:[your mail-server IP] include:mktomail.com ~allですが、mxとip4の部分は自社のサーバー用です。Marketoに必要なのはinclude:mktomail.comだけです。SPFレコードがすでにある場合(Google Workspace、Microsoft 365など)は、末尾のallの直前にincludeを追加してそのレコードにまとめます。2つ目のSPFレコードは絶対に公開しないでください。
- 3
DKIM用にドメインを追加
Admin → Email → SPF/DKIMに戻り、Add Domainをクリックして、Fromアドレスが使うドメインを正確に入力します(yourdomain.com、またはサブドメインから送信する場合はmarketing.yourdomain.com)。DKIMは送信ドメインごとに設定するので、ここで入力するドメインは表示上のFromアドレスと一致している必要があります。
- 4
セレクターと鍵サイズを選択
Selectorを選び(ほとんどの場合はデフォルトのm1のままで構いません)、Key Sizeは2048(Adobeの推奨)にします。m1._domainkeyがそのドメインで別のMarketoサブスクリプションやツールにすでに使われている場合は、既存の鍵と衝突しないようm2、a1、mktoのいずれかを選びます。Addをクリックすると、MarketoがHost Recordと、長いTXT Valueを生成します。
- 5
DKIMのTXTレコードを公開
TXTレコードを作成します。ホストはMarketoに表示されるセレクターのホスト(m1._domainkey.yourdomain.com)、値はv=DKIM1; k=rsa; p=…の鍵全体です。2048ビットの鍵なので、値はTXT文字列の255文字の上限を超えます。DNS管理画面によっては、1つのレコード内で引用符付きの複数の文字列に分割する必要があります。正確に貼り付け、タイプをCNAMEに変更しないでください。
- 6
DMARCレコードを追加
MarketoはDMARCレコードを作成しません。ホスト_dmarcに、v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.comの値でTXTレコードを追加します。p=noneは監視のみのため、MarketoのDKIMのアライメントが一致することを確認する間、何も影響しません。ポリシーは後で引き上げます。_dmarcレコードはドメイン全体で1つだけにしてください。
- 7
Check DNSをクリック
Admin → Email → SPF/DKIMに戻り、ドメインを選択してCheck DNSをクリックします。Marketoでは、DKIM鍵がドメインのすべてのネームサーバーに反映されている必要があります。すぐに確認できなくても鍵を再生成せず、最大24~48時間待ってください。レコードがすべての場所で解決されると、ステータスがActiveに変わります。
- 8
(任意)Branded Return-Pathを設定
SPFのアライメントも一致させたい場合は、Marketo(またはMarketoのコンサルタントやサポート)にBranded Return-Pathの設定を依頼します。Shared/Trusted IPでは無料で、エンベロープのReturn-Pathを自社ドメインのサブドメインに移します(そのサブドメインのSPFレコードと、MXレコードの変更も伴います)。これは追加の強化策です。カスタムDKIMだけでDMARCの要件は満たせるため、要件への準拠には必須ではありません。
- 9
サンプルを送信してヘッダーを確認
MarketoのサンプルメールまたはテストメールをGmailのアドレスに送って開き、⋮ → Show originalを使います。DKIM: PASS(d=yourdomain.com、セレクターm1)とDMARC: PASSが表示されていれば成功です。SPFは通常、mktomail.comのReturn-Pathで成功するもののアライメントは一致しない、と表示されます。ブランド化したReturn-Pathを追加していない限り、これは想定どおりです。失敗の典型的な兆候は、DKIMが今もMarketoのドメインで署名されていることで、カスタムDKIMがまだActiveではないことを意味します。
追加するレコード
正確な値はMarketoのセットアップウィザードで生成されます。以下は、DNSホストに追加するレコードの形式を示したものです。
| タイプ | ホスト | 値 |
|---|---|---|
| TXT | @ | v=spf1 include:mktomail.com ~allルートドメインのSPF:SPFレコードは1つだけにし、include:mktomail.comを既存のv=spf1の行にまとめます。DNSルックアップを1回消費します(mktomail.comはip4のみのフラットなレコードで、実際のDNSで確認済み)。Adobeの例は~allですが、正規の送信元をすべて記載したら-allに引き上げます。MarketoのIPアドレスを許可しますが、これだけではアライメントは一致しません。 |
| TXT | m1._domainkey | v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A…(2048-bit public key from Admin → Email → SPF/DKIM)例です。セレクター(デフォルトはm1)と鍵は固定値ではなく、Marketoでドメインごとに生成されます。2048ビットの鍵は、引用符付きの複数の文字列に分割して公開する必要がある場合があります。これがDMARCのアライメントを一致させるレコードです(d=yourdomain.com)。 |
| TXT | _dmarc | v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com自分で追加します。Marketoが作成することはありません。レコードは1つのドメインにつき1つです。アライメントはDKIMで取り、p=noneから始めて、quarantine/rejectへと引き上げます。 |
ルートドメインのSPF(v=spf1)のTXTレコードは1つだけにし、すべての送信元をこの1行にまとめてください。SPFレコードが2つあると、それ自体がエラーになります。
DNSルックアップの10回制限
SPFのDNSルックアップは10回までに厳格に制限されており、超えるとpermerrorを返して、どの受信側でも検証されなくなります。Marketoの設定がこの上限のうち何回を消費するかは、次のとおりです。
Marketoは10回のルックアップのうち1回を消費します。ip4:とip6:のメカニズムはルックアップを消費しません。
DKIM
MarketoのDKIMは自分で公開するTXTレコードで、SendGridやMailchimpのようなCNAMEによる委任ではありません。Admin → Email → SPF/DKIMでAdd Domainをクリックし、Fromアドレスのドメインを入力して、Selector(デフォルトはm1)とKey Size(Adobeの推奨は2048)を選び、Addをクリックします。するとMarketoが、Host Record(m1._domainkey.yourdomain.com)と、v=DKIM1; k=rsa; p=<public key>を含むTXT Valueを生成します。このレコードをDNSホストで公開します。対応する秘密鍵はMarketoが保持し、レコードの確認後は、その鍵で送信メールに署名します。Marketo特有の注意点がいくつかあります。Marketoは公開鍵を渡すだけで、裏側で自動ローテーションできるCNAMEを管理しているわけではありません。自分で公開するTXTレコードなので、鍵のローテーションでは、Marketoで新しいセレクターと鍵を生成して公開し直すことになります。健全な運用のため、定期的なローテーションを計画してください。DKIMを設定するドメインはFromアドレスと正確に一致している必要があります。news@marketing.yourdomain.comをFromにするなら、ルートドメインではなくmarketing.yourdomain.comにDKIMが必要です。デフォルトのm1セレクターがそのドメインですでに使われている場合(2つ目のMarketoインスタンスや別の連携など)は、既存の鍵を上書きしないようm2、a1、mktoのいずれかを選びます。またMarketoのCheck DNSでは、鍵がドメインのすべてのネームサーバーに反映されている必要があります。プライマリネームサーバーにレコードが表示されていても、反映が一部だけだと失敗します。カスタムDKIMがActiveになるまで、Marketoは独自のデフォルトのDKIMドメインで署名するため、Gmailには「via mktomail.com」やmailed-byの表記が付き、DKIMのアライメントは一致しません。Activeになると、メールはd=yourdomain.comで署名され、DMARCのアライメントが一致します。
DMARC
DMARCは別のポリシーTXTレコードで、Marketoは作成しません。DNSホストで自分で追加します。_dmarc.yourdomain.comに、v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.comで始まるTXTレコードを公開します。p=noneは監視のみのため、集計レポート(rua)で送信元がアライメントの一致した状態で成功しているか確認する間、配信には何も影響しません。Marketoで特に確認すべき点があります。Return-Pathがmktomail.comのままなので、デフォルトではSPFのアライメントは一致しません。そのためレポートでは、MarketoがDKIMのアライメント(d=yourdomain.com)で成功しているかを確認します。Adobeも、Marketo EngageではSPFではなくDKIMでDMARCのアライメントを取ることを明確に推奨しています。Marketoと他の正規の送信元がすべてアライメントの一致した状態で成功したら、p=quarantine、最終的にp=rejectへと段階的に引き上げます。組織ドメイン全体で_dmarcレコードは1つだけにしてください。サブドメインは、個別のレコードやsp=タグで上書きしない限り、親ドメインのポリシーを自動的に継承します。Branded Return-Pathも設定した場合は、レポートでSPFのアライメント一致も確認できます。DMARCに成功する経路が2つになり、Marketoのメールは転送に強くなります。
正しく設定できたか確認する
MarketoのCheck DNSの「verified」ステータスだけで判断せず、実際のメールで確認してください。MarketoのサンプルメールをGmailのメールボックスに送り、開いて⋮ → Show originalを選びます。DKIM: PASS(d=yourdomain.com、セレクターm1)とDMARC: PASSが表示されていれば成功です。失敗の典型的な兆候は、DKIMがMarketoのドメインで署名されていることです(デフォルトのDKIMが有効なままで、カスタムDKIMがActiveになっていない状態)。この場合、DMARCにはアライメントが一致した成功の根拠がありません。SPFはmktomail.comのReturn-Pathに対して成功と表示されますが、「not aligned」となります。ブランド化したReturn-Pathを設定していない限り、これは想定どおりです。次に、Qualisendのドメイン診断でドメインをチェックし、SPFレコード(ルックアップは1回のまま)、m1._domainkeyのTXTレコード、_dmarcレコードがすべて正しく解決されることを確認します。レコードをすばやく確認するには送信ドメイン認証チェックを使います。集計レポートが届き始めたら、DMARCレポート解析にレポートをドロップします。Marketo(mktomail)が、DKIMのアライメントが一致して成功している送信元として表示されるはずです。
よくある注意点
- 適用範囲
Marketo最大の注意点:include:mktomail.comでSPFには成功しますが、MarketoのReturn-Pathは*.mktomail.comのバウンス用ドメインなので、アライメントは一致しません。デフォルトでアライメントが一致するのはDKIMだけで、SPFだけではDMARCに失敗します。Adobeも、厳格なSPFアライメントはMarketo Engageでサポートされないとしています。アライメントはDKIMで取ってください。
- 適用範囲
Adobeの例のSPFレコード全体(v=spf1 mx ip4:[corpIP] include:mktomail.com ~all)をそのままコピーしないでください。mxとip4:[corpIP]の部分はMarketoではなく自社のメールサーバーを許可するものです。そのサーバーを運用していなければ削除します。Marketoに必要なのはinclude:mktomail.comだけです。
- 適用範囲
セレクターの衝突:デフォルトのDKIMセレクターはm1です。m1._domainkeyがそのドメインですでに使われている場合(2つ目のMarketoサブスクリプションや別のツール)は、m2、a1、mktoのいずれかを選びます。そうしないと既存の鍵を上書きしてしまいます。
- 認証失敗の原因
MarketoのDKIMはTXTレコードで、CNAMEではありません。2048ビットの鍵はTXT文字列の255文字の上限を超えるため、管理画面によっては引用符付きの複数の文字列として保存されます。分割の崩れは、見た目は正しいレコードでCheck DNSが失敗する一般的な原因です。
- 適用範囲
Check DNSには完全な反映が必要です。Marketoでは、DKIM鍵がドメインのすべてのネームサーバーで確認できなければなりません。セカンダリネームサーバーの情報が古かったり反映が一部だけだったりすると、プライマリのNSにレコードが表示されていても確認に失敗します。原因を調べる前に、最大24~48時間待ってください。
- 適用範囲
DKIM(およびSPF)はFromドメインと一致させ、送信ドメインごとに設定する必要があります。marketing.yourdomain.comをFromにする場合は、そのサブドメインに個別のDKIMレコードとSPFレコードが必要で、ルートドメインのレコードは適用されません。
- 認証失敗の原因
SPFのTXTレコードは1つだけにしてください。Marketoを使う企業は、Google Workspace、Microsoft 365、トランザクションメールのリレーなどからも送信しているのが一般的です。2つ目のSPFレコードを公開せず、include:mktomail.comを1行のv=spf1にまとめます(2つあるとPermErrorになります)。DNSルックアップの10回制限にも注意してください。
- 認証失敗の原因
ブランド化したトラッキングリンクは別物です。Marketoのメール内リンクが使うCNAME(Marketoのブランディング用ドメインを指すトラッキング用サブドメイン)は、リンクのブランディングとレピュテーションのためのもので、認証とは関係ありません。SPF、DKIM、DMARCのレコードと混同しないでください。
SPFレコードを作成
以下ではMarketoがあらかじめ選択されています。他に利用している送信プラットフォームを追加し、1つにまとめたレコードを公開してください。
このドメイン自身のサーバー
ドメインが(上記のサービスを経由せず)直接メールを送信する場合は、ドメイン自体を許可します。
その他の送信元・IP
リストにないもの(別のサービスのSPFホストや特定のIPアドレス)を追加します。
接頭辞のinclude:は自動で付加されます。サービスのドキュメントに記載されているホスト名を入力してください。
その他すべての送信元へのポリシー
上記に記載されていないサーバーからのメールを、受信側がどう処理すべきかを指定します(allメカニズム)。
- ルートドメインにTXTレコードとして公開します。ホストは@(ドメインそのもの)、値は上記の文字列全体です。
- SPFレコードは1つのドメインにつき1つだけにします。すべての送信元をこの1行にまとめてください。v=spf1で始まるTXTレコードが2つあると、両方とも無効になります。
- DNSルックアップは10回以内に収めてください。include:、a、mxはそれぞれ1回とカウントされ、includeは内部でさらにルックアップを発生させることがあります。ip4:とip6:はカウントされません。
送信ドメイン認証の設定が済んだら、次は検証済みのクリーンなリストへの配信です。
リストを検証MarketoのSPFに関するよくある質問
関連記事
マーケティング・ESPの他のサービス
すべてのSPFガイド公開したら、ドメイン診断ですべてのレコードが正しく解決されることを確認し、DMARCレポート解析で自社ドメインを名乗って送信している送信元を把握します。作成ツールではすべての送信元を確認できます。ただし、認証は到達率対策の半分にすぎません。送信IPやドメインがブラックリストに掲載されていると、SPFの設定がどれほど適切でも迷惑メールに振り分けられます。そのため、ブラックリスト監視で掲載状況を確認しておくことをおすすめします。
認証の次は、リストをクリーンに保つ
SPF、DKIM、DMARCに成功すれば受信トレイに届き、クリーンなリストならその状態を維持できます。お手持ちのリストも検証してクリーニングできます。100クレジット無料、クレジットカード登録不要で始められます。