SalesforceのSPF・DKIM・DMARC設定。
Salesforce(Sales、Service、Platform Cloud)のドメイン認証には3つの要素があります。また、Spring '26以降、Salesforceは確認していないドメインからのメール送信を拒否します。SPFには実際に共通のinclude(include:_spf.salesforce.com)があり、ルートドメインの1つのSPFレコードにまとめます。DKIMはCNAMEの「セレクター」レコード2つで、Setup - DKIM Keysで生成してからActivateします。アクティブなDKIM鍵の作成は、Salesforceの新しいメール送信ドメイン確認を満たす推奨の方法でもあります。DMARCは4つ目の別のレコードで、Salesforceが作成することはありません。ほとんどの人がつまずくのは、Salesforceが独自のReturn-Pathドメインからバウンスを送信するため、SPFのアライメントがFromアドレスと一致しない点です。DMARCの成功を実際に担うのはDKIMです。
Salesforceを認証すべき理由
Salesforceメールの認証は、もはや任意の形式的な作業ではありません。Spring '26以降(適用は2026年3月9日に始まり、2026年4月下旬まで順次展開)、Salesforceは、確認されていないドメインからの、ユーザー作成および自動のメール送信をすべてブロックします。手動送信はEmail Composerで「Not allowed to send from an unauthorized domain」として失敗し、自動フローは通知なく失敗して、Email Logsにのみ「550 5.7.1 Delivery not authorized, message discarded」と表示されます。さらに、2024年2月以降、GmailとYahooは、すべての大量送信者(1日あたり約5,000通以上)に対し、SPF、DKIM、DMARCにアライメントが一致した状態で成功することを義務付けています。Microsoftも2025年に、Outlook.com宛ての大量メールに同じ要件の適用を始めました。Salesforceのデフォルトの動作は、DMARCを気づかないうちに失敗させます。独自のバウンス用ドメインをReturn-Pathに設定するため、SPFは認証されてもFromアドレスとアライメントが一致しません。また、初期状態では、Salesforceのメールに自社ドメインのDKIM署名はまったく付きません。つまり、問題なく見えるSalesforceメールでも、あらゆる受信先でDMARCに失敗する可能性があります。DKIM鍵を設定すれば、両方の問題を一度に解決できます。ドメイン確認の要件を満たすと同時に、DMARCに成功するアライメントの一致した署名が得られ、築いたレピュテーションがSalesforceの共有インフラに流れず、自社ドメインに蓄積されます。
SalesforceにおけるSPFの実情
Salesforceコアは、本当の意味でincludeで認証するサービスです。実際に共通のメカニズムが1つあり、include:_spf.salesforce.comをルートドメインの単一のSPFのTXTレコードに追加します。例:v=spf1 include:_spf.salesforce.com ~all。ただし、これが何をするのかは正確に理解してください。このincludeはv=spf1 exists:%{i}._spf.mta.salesforce.com -allに解決されます。Salesforceの現在の送信IPを許可するexistsマクロのレコードで、DNSルックアップの10回制限のうち2回を消費します(include自体で1回、入れ子のexistsメカニズムで1回)。重要なのは、このincludeを追加すればSalesforceはSPFで許可されますが、SPFのアライメントが一致するわけではないことです。デフォルトでは、Salesforceは独自のドメインをエンベロープ送信者/Return-Path(バウンス処理用ドメイン)として使います。そのためSPFチェックは自社ドメインではなくSalesforceのドメインに対して行われ、SPFには成功しても、表示されるFromアドレスとはアライメントが一致せず、DMARCには何の貢献もしません。だからこそ、ここではDKIMが不可欠です。DMARCにはアライメントが一致するメカニズムが少なくとも1つ必要で、SalesforceではそれがDKIMです。それでもincludeは公開してください(Salesforceが文書で推奨しており、送信IPを適切に許可できます)。ただし、DMARCの成功を担うのはSPFではなくDKIMと考えてください。
2つの設定方法
DKIM鍵(推奨)
- custdkim.salesforce.comにCNAMEで委任するので、Salesforceが秘密鍵を保持してローテーションします
- アライメントが一致するDKIM署名が得られます。DMARCを実際に成功させるメカニズムです
- アクティブなDKIM鍵は、Spring '26のメール送信ドメイン確認の要件も満たします
- Domain Match Patternにより、1つの鍵で複数のFromアドレスのドメインをカバーできます
Authorized Email Domains:TXT(確認のみ)
- _sfdv.yourdomain.com(またはルートドメイン)に置く1つのTXTレコードで、ドメインの所有権を証明します
- Spring '26の確認要件を満たすので、送信はブロックされません
- メールには署名しません。DKIM署名もDMARCのアライメントも得られません
- 一時的な手段としてのみ使用してください。到達率のためには、DKIM鍵が引き続き必要です
設定手順
- 1
Deliverabilityのアクセスレベルを設定
Setupから、Quick Findを使ってEmail - Deliverabilityを開きます。「Access to Send Email」(Access level)を「All email」に設定し、Salesforceが実際に送信メールを送るようにします。サンドボックスや一部の組織では、デフォルトが「System email only」または「No access」になっており、認証以前にテストメールが通知なく破棄されます。
- 2
DKIM鍵を作成
Setupから、Quick Findで「DKIM Keys」を検索し、Create New Keyをクリックします。RSA鍵のサイズは2048ビットを選びます。一意のSelector(例:example-sf-a)と一意のAlternate Selector(例:example-sf-b)を入力します。送信に使うDomainとDomain Match Pattern(例:そのドメインをカバーするexample.com、またはサブドメインも含むより広いパターン)を入力して、Saveをクリックします。注:Domainフィールドは保存すると変更できません。
- 3
DKIMのCNAMEレコードを2つ公開
DKIM Key Detailsページを開くと、CNAMEとAlternate CNAMEが表示されます。DNSホストで、両方をCNAMEレコードとして作成します。ホストexample-sf-a._domainkey.yourdomain.comが、Salesforceに表示されるターゲット(例:example-sf-a.k4tyd2.custdkim.salesforce.com)を指すようにします。-bセレクターも同様に、custdkim.salesforce.com配下の専用のターゲットを指すようにします。正確なターゲットをコピーしてください。1文字でも間違えると署名が機能しません。DNSがCloudflareの背後にある場合は、「DNS only」(グレーのクラウド)に設定してください。
- 4
DKIM鍵を有効化
CNAMEの反映後(数分、最大48~72時間)、Setup - DKIM Keysに戻って鍵を開き、Activateをクリックします。両方のCNAMEが公開DNSで解決されるまで、Salesforceでは有効化できません。有効になると、Salesforceは送信メールにd=yourdomain.comで署名し、ドメインはSpring '26の要件で確認済みとして扱われます。
- 5
SPFのincludeを追加(既存なら1つにまとめる)
DNSホストで、ルートドメイン(ホストは@)に、SPFのTXTレコードを1つ公開します:v=spf1 include:_spf.salesforce.com ~all。すでにGoogle Workspace、Microsoft 365、マーケティングツールなどで送信している場合は、既存の1行のv=spf1にinclude:_spf.salesforce.comをまとめ、2つ目のSPFレコードは絶対に作成しないでください。これによりSalesforceのIPが許可されます(2回のルックアップを消費します)が、これだけではアライメントが一致しないことに注意してください。
- 6
DKIM鍵をまだ使っていない場合はドメインを確認
DKIMの稼働前に送信のブロックを解除する必要がある場合は、TXTによる代替手段を使います。Setup - Quick Find 「Authorized Email Domains」 - Addでドメインを入力すると、Salesforceが確認キーを生成します。これをTXTレコード(ホストは_sfdv.yourdomain.com、またはルートドメイン)として公開し、反映を待ってから、ドメインをEditして「Verify domain ownership」をオンにします。これは所有権を証明するものの、メールには署名しません。目指すべきはあくまでDKIM鍵です。
- 7
Org-Wide Addressを確認済みドメインに設定
すべてのFromアドレスは、確認済みのドメイン上にある必要があります。Setupから、Quick Find - 「Organization-Wide Addresses」を開き、ユーザー、フロー、メールアラートが送信に使うアドレス(例:no-reply@yourdomain.com)が、認証したばかりのドメインにあることを確認します。自動送信がブロックされる最も多い原因は、未確認のOrg-Wide Addressesです。
- 8
DMARCレコードを公開
SalesforceはDMARCレコードを作成しません。_dmarc.yourdomain.comにTXTレコードを追加します:v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com。p=noneは監視のみのため、Salesforceのメールが自社ドメインとアライメントが一致した状態でDKIMに成功することを確認している間、配信には影響しません。_dmarcレコードはドメイン全体で1つだけにしてください。
- 9
テストメールを送信してヘッダーを確認
SalesforceのOrg-Wide AddressからGmailのメールボックス宛てに実際のメールを送信して開き、3点メニュー - Show originalを選びます。DKIM: PASS(salesforce.comではなくsigned-by / d=yourdomain.com)、DMARC: PASSと表示されていれば成功です。SPFの結果には通常、SalesforceのReturn-Pathドメインが表示されますが、これは想定どおりです。DMARCの成功を担うべきなのはDKIMです。
追加するレコード
正確な値はSalesforceのセットアップウィザードで生成されます。以下は、DNSホストに追加するレコードの形式を示したものです。
| タイプ | ホスト | 値 |
|---|---|---|
| TXT | @ | v=spf1 include:_spf.salesforce.com ~allルートドメインのSPF:レコードは必ず1つだけにします。既存のv=spf1の行がある場合は、このincludeをそこにまとめてください。DNSルックアップを約2回消費します(includeと入れ子のexists)。Salesforceを許可しますが、アライメントは一致しません。 |
| CNAME | example-sf-a._domainkey | example-sf-a.k4tyd2.custdkim.salesforce.comDKIMセレクター1:例です。正確なターゲットはDKIM Key Detailsページからコピーしてください。k4tyd2のパーティション文字列は鍵ごとに固有です。 |
| CNAME | example-sf-b._domainkey | example-sf-b.e6mxu6.custdkim.salesforce.comDKIMの代替セレクター:例です。2つ目のセレクターにより、DNSを再度変更しなくても、Salesforceが鍵をローテーションできます。Salesforceに表示された正確な値を使ってください。 |
| TXT | _sfdv | 00D000000000P18=1AB00000000000BAuthorized Email Domainsの確認キーです。例であり、組織ごとに異なります。アクティブなDKIM鍵の代わりに(または導入前に)TXTによる所有権の確認方法を使う場合にのみ必要です。ルートドメインをホストにすることもできます。 |
| TXT | _dmarc | v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com自分で追加するレコードです。Salesforceが作成することはありません。ドメインごとに1つです。p=noneで始め、後からポリシーを引き上げます。 |
ルートドメインのSPF(v=spf1)のTXTレコードは1つだけにし、すべての送信元をこの1行にまとめてください。SPFレコードが2つあると、それ自体がエラーになります。
DNSルックアップの10回制限
SPFのDNSルックアップは10回までに厳格に制限されており、超えるとpermerrorを返して、どの受信側でも検証されなくなります。Salesforceの設定がこの上限のうち何回を消費するかは、次のとおりです。
Salesforceは10回のルックアップのうち2回を消費します。ip4:とip6:のメカニズムはルックアップを消費しません。
DKIM
Salesforce認証の中心はDKIMです。自社ドメインとアライメントが一致する唯一のメカニズムであり、Spring '26以降は、送信がブロックされないようドメインの所有権を確認する推奨の方法もアクティブなDKIM鍵です。作成は、Setup - Quick Find - 「DKIM Keys」 - Create New Keyで行います。2048ビットを選び、一意のSelectorと一意のAlternate Selectorを入力し(Salesforceは鍵のローテーションのためにセレクターを2つ使います)、Domainを指定して、この鍵が署名するFromアドレスのドメインを制御するDomain Match Patternを設定します。保存すると、DKIM Key Detailsページに、CNAMEとAlternate CNAMEが表示されます。たとえば、example-sf-a._domainkey.yourdomain.comの向け先はexample-sf-a.k4tyd2.custdkim.salesforce.com、example-sf-b._domainkey.yourdomain.comの向け先はexample-sf-b.e6mxu6.custdkim.salesforce.com、といった形です。これらは貼り付けるTXTレコードではなく、custdkim.salesforce.comに委任するCNAMEなので、Salesforceが秘密鍵を保持し、2つのセレクターの背後で公開鍵をローテーションします。DNSを編集し直す必要はありません。見落としやすい点が2つあります。Domainフィールドは保存すると変更できません(変更するには新しい鍵を作成します)。また、両方のCNAMEが公開DNSで実際に解決されるまで、Activateをクリックできません。両方のレコードを公開し、反映を待ってからDKIM Keysに戻ってActivateをクリックしてください。これでようやく、Salesforceが送信メールにd=yourdomain.comで署名し始めます。以前のSalesforceのDKIM鍵は、生成して貼り付ける自己管理のTXT鍵でした。現在の「secure」DKIM鍵は、ここで説明したCNAMEによる委任の方式で、こちらを使うべきです。
DMARC
DMARCは、自社ドメインに設定する別のポリシー用TXTレコードです。Salesforceは作成しないので、_dmarc.yourdomain.comに自分で公開します。v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.comで始めてください。p=noneは監視のみです。配信には影響せず、その間に集計レポート(rua)で、Salesforceのメールが自社ドメインとアライメントが一致した状態でDKIMに成功していることを確認します。Salesforce特有のアライメントの癖が最も影響するのはこの段階です。独自のReturn-Pathドメインからバウンスを送信するため、SPFは認証されてもアライメントは一致せず、SalesforceのメールではDKIMのアライメントだけでDMARCに成功します。それ自体は問題ありません。DMARCに必要なアライメントの一致は1つだけだからです。ただし、ポリシーを引き上げる前にDKIM鍵をアクティブにして署名を始めておかないと、正当なSalesforceメールが失敗します。1~2週間レポートを確認し、Salesforce(およびほかのすべての送信者:Google Workspace、Microsoft 365、マーケティングツール)にアライメントの一致した成功が表示されることを確かめてから、p=quarantine、最終的にp=rejectへと段階的に引き上げます。_dmarcレコードは組織ドメイン全体で1つだけにし、Salesforceのために2つ目を追加しないでください。
正しく設定できたか確認する
SalesforceのDKIM Keysページのステータスだけで判断せず、実際のメールで確認してください。Org-Wide AddressesのいずれかからGmailのメールボックス宛てに送信してメールを開き、3点メニュー - Show originalを選びます。DKIM: PASS(signed-by / d=yourdomain.com)、DMARC: PASSと表示されていれば成功です。signed-byにsalesforce.comと表示される場合は、鍵がアクティブでないか、Org-Wide Addressが誤ったドメインにあります。SPFの結果には通常、自社ではなくSalesforceのReturn-Pathドメインが表示されますが、アライメントを担っているのはSPFではなくDKIMなので、想定どおりです。Salesforceでは、DKIM Key DetailsページにActiveと表示されるはずです。その後、Qualisendのドメイン診断でドメインをチェックし、SPFレコード、両方のDKIMセレクターのCNAME、DMARCレコードがすべて正しく解決され、SPFが10回の上限に収まっていることを確認します。集計レポートが届き始めたら、DMARCレポート解析にレポートをドロップし、Salesforceがアライメントが一致し成功している送信元として表示されることを確認します。
よくある注意点
- 適用範囲
Spring '26の適用:Salesforceは現在、確認されていないドメインからのメールをブロックします。手動送信は「Not allowed to send from an unauthorized domain」で失敗し、自動フローは通知なく失敗して、Email Logsに「550 5.7.1 Delivery not authorized, message discarded」と記録されます。Org-Wide Addressesが使うすべてのドメインについて、DKIM鍵を有効化するか、Authorized Email Domainsで確認してください。
- 適用範囲
Salesforceでは、SPFのアライメントは一致しません。独自のReturn-Pathドメインからバウンスを送信するため、SPFのincludeは許可を与えるだけで、Fromアドレスとアライメントが一致することはなく、DMARCは完全にDKIMに依存します。アクティブなDKIM鍵なしでincludeを追加しても、DMARCには成功しません。
- 適用範囲
DKIM鍵のDomainフィールドは変更できません。Saveすると、ドメイン(またはセレクター)は編集できず、新しい鍵を作成する必要があります。正しく設定し、実際に送信するドメインをDomain Match Patternでカバーしてください。
- DNS設定
両方のCNAMEが解決されるまで、DKIM鍵をActivateできません。DNSの反映中はActivateボタンが機能しません。待ってから(最大48~72時間)、DNSルックアップで再確認してやり直してください。
- 適用範囲
Deliverabilityのアクセスレベルが、送信を通知なくブロックします。「Access to Send Email」が「System email only」または「No access」(サンドボックスでよくある設定)の場合、DNSに関係なくSalesforceは送信メールを破棄します。Setup - Deliverabilityで「All email」に設定してください。
- 適用範囲
Email RelayはSalesforceのDKIM署名を迂回します。Setup - Email Relayで独自のSMTPサーバーを経由して送信する場合、Salesforceはメールに署名しません。SPFとDKIMはリレー側の責任となり、この経路にはこれらのSalesforceレコードは適用されません。
- DNS設定
これはSalesforceコア(Sales/Service/Platform)が対象で、Marketing CloudやPardotは対象外です。Marketing Cloud Engagementは、異なるCNAMEを使う独自のSender Authentication Package(SAP)を使用し、Account Engagement(Pardot)にも独自の設定があります。製品ファミリーごとに別々に認証します。
- 認証失敗の原因
SPFレコードは1つだけにしてください。include:_spf.salesforce.comは1行のv=spf1にまとめます。同じドメインに2つのSPFのTXTレコードがあるとPermErrorになり、すべての送信者のSPFが機能しなくなります。
SPFレコードを作成
以下ではSalesforceがあらかじめ選択されています。他に利用している送信プラットフォームを追加し、1つにまとめたレコードを公開してください。
このドメイン自身のサーバー
ドメインが(上記のサービスを経由せず)直接メールを送信する場合は、ドメイン自体を許可します。
その他の送信元・IP
リストにないもの(別のサービスのSPFホストや特定のIPアドレス)を追加します。
接頭辞のinclude:は自動で付加されます。サービスのドキュメントに記載されているホスト名を入力してください。
その他すべての送信元へのポリシー
上記に記載されていないサーバーからのメールを、受信側がどう処理すべきかを指定します(allメカニズム)。
- ルートドメインにTXTレコードとして公開します。ホストは@(ドメインそのもの)、値は上記の文字列全体です。
- SPFレコードは1つのドメインにつき1つだけにします。すべての送信元をこの1行にまとめてください。v=spf1で始まるTXTレコードが2つあると、両方とも無効になります。
- DNSルックアップは10回以内に収めてください。include:、a、mxはそれぞれ1回とカウントされ、includeは内部でさらにルックアップを発生させることがあります。ip4:とip6:はカウントされません。
送信ドメイン認証の設定が済んだら、次は検証済みのクリーンなリストへの配信です。
リストを検証SalesforceのSPFに関するよくある質問
関連記事
ヘルプデスク・CRMの他のサービス
すべてのSPFガイド公開したら、ドメイン診断ですべてのレコードが正しく解決されることを確認し、DMARCレポート解析で自社ドメインを名乗って送信している送信元を把握します。作成ツールではすべての送信元を確認できます。ただし、認証は到達率対策の半分にすぎません。送信IPやドメインがブラックリストに掲載されていると、SPFの設定がどれほど適切でも迷惑メールに振り分けられます。そのため、ブラックリスト監視で掲載状況を確認しておくことをおすすめします。
認証の次は、リストをクリーンに保つ
SPF、DKIM、DMARCに成功すれば受信トレイに届き、クリーンなリストならその状態を維持できます。お手持ちのリストも検証してクリーニングできます。100クレジット無料、クレジットカード登録不要で始められます。