ECサイトのSPF・DKIM・DMARC設定:Gmail・Yahooの送信者要件に対応

SPF・DKIM・DMARCの役割、Gmail・Yahoo・Outlook.comが送信者に求める要件、ShopifyとWooCommerceでの設定方法、p=rejectまで進める手順を解説します。

FixReports 編集部2分で読めます

GmailとYahooの送信者要件を満たすには、すべてのECサイトが送信ドメインにSPFまたはDKIMを設定する必要があります。大量送信者はその両方に加えてp=none以上のDMARCレコードを設定し、表示上のFromドメインをSPFまたはDKIMのドメインと一致(アライメント)させなければなりません。大量送信者はさらに、マーケティングメールでワンクリック登録解除を提供し、報告される迷惑メール率を0.3%未満に保つ必要があります。Shopifyでは、管理画面で送信者ドメインを認証し、DMARCレコードを追加します。WooCommerceでは、認証済みのメール配信サービスを通じて送信します。正規のメールがすべて認証に合格していることをDMARCレポートで確認できたら、ポリシーをp=rejectに向けて段階的に強化できます。

要点

SPF・DKIM・DMARCは実際に何をしているのですか?

SPFはそのドメインのメールを送信してよいサーバーを列挙し、DKIMは各メッセージに署名し、DMARCはその両方を顧客が目にするFromアドレスに結び付けます。

レコード証明する内容設定場所規格
SPF送信サーバーが、エンベロープ(MAIL FROM)で使われるドメインから送信を許可されていることドメインのTXTレコードRFC 7208 (新しいタブで開きます)
DKIMメッセージがそのドメインによって署名され、送信途中で改ざんされていないことselector._domainkey.example.comのTXTレコードRFC 6376 (新しいタブで開きます)
DMARC表示上のFromドメインとアライメントの取れたドメインで、SPFまたはDKIMが合格したこと。失敗時の扱いとレポートの送信先を受信側に伝えます_dmarc.example.comのTXTレコードRFC 9989 (新しいタブで開きます)

アライメントは見落としがちです。メール配信プラットフォームが自社のバウンス用ドメインでSPFに合格していても、Fromアドレスにはストアのドメインが表示されていることがあります。このメッセージはSPFには合格しますが、DKIMが自社ドメインで署名されていなければDMARCには失敗します。

GmailとYahooは送信者に何を求めていますか?

どちらもすべての送信者に認証を求め、大量送信者にはさらに厳しいルールを課しています。

すべての送信者に対して、GmailはSPFまたはDKIM、有効な正引き・逆引きDNS、TLS、RFC 5322に沿った形式、Postmaster Toolsでの迷惑メール率0.3%未満を求めています(Google (新しいタブで開きます))。Yahooは、SPFかDKIMの少なくとも一方と、迷惑メール率0.3%未満を求めています(Yahoo Sender Hub (新しいタブで開きます))。大量送信者に対する要件は次のとおりです。

要件GmailYahoo
SPFとDKIM両方両方
DMARC必須。ポリシーはnoneでも可p=none以上の有効なポリシーがあり、DMARCに合格すること
アライメントFromドメインがSPFまたはDKIMのドメインと一致同じ。緩やかなアライメント(relaxed)も可
ワンクリック登録解除マーケティングメールと購読メールで、RFC 8058に準拠。見える位置にリンクも表示マーケティングメールと購読メールで、ワンクリックに対応したList-Unsubscribeヘッダー
登録解除の処理48時間以内(推奨)2日以内
迷惑メール率0.3%未満。Googleは0.10%未満を推奨0.3%未満

ECサイトにとって重要な点がいくつかあります。

  • Gmailはドメイン単位で数えます。同じ主ドメインから送られたメッセージは5,000件の上限に合算されるため、注文メール、マーケティングメール、サポートの返信がすべて積み上がります。
  • 対象は個人のGmailアカウントだけです。Google Workspaceアカウント宛てのメッセージには、このガイドラインは適用されません。
  • トランザクションメールはワンクリック登録解除の対象外です。ただし、注文確認メールにも認証は必要です。

ワンクリック登録解除では、RFC 8058 (新しいタブで開きます)で定義された2つのヘッダーを使います。RFC 8058では、これらのヘッダーを対象に含む有効なDKIM署名も必要です。

List-Unsubscribe: <https://example.com/unsubscribe/opaquepart>
List-Unsubscribe-Post: List-Unsubscribe=One-Click

マーケティングプラットフォームがこれらのヘッダーを付けているかどうかは、自社で配信したキャンペーンメールのうち1通のソース(原文)を開いて確認してください。

2024年2月以降、何が変わりましたか?

要件の適用は段階的に厳しくなっており、ほかのメールボックスプロバイダーも同様のルールを採用しています。

時期変更内容出典
2024年2月GmailとYahooの要件が発効(Yahooは段階的に適用)Google (新しいタブで開きます)、Yahoo (新しいタブで開きます)
2024年6月Gmail:迷惑メール率が0.3%を超える大量送信者は、緩和措置(mitigation)の対象外にGmailのFAQ (新しいタブで開きます)
2024年6月1日Gmail:すでに登録解除リンクを設けていた送信者に対する、ワンクリック登録解除の対応期限GmailのFAQ (新しいタブで開きます)
2025年5月5日Outlook.com:1日5,000件を超えて送信するドメインへの要件。Microsoftの4月29日の更新では、要件を満たさないメッセージは550 5.7.515で拒否されるとしていますMicrosoft (新しいタブで開きます)
2025年11月Gmailが適用を強化。一時的な拒否と恒久的な拒否を含むGmailのFAQ (新しいタブで開きます)
2026年5月RFC 9989が、DMARCの仕様としてRFC 7489を廃止IETF (新しいタブで開きます)

Outlook.comのルールは一般ユーザー向けのアドレス(outlook.com、hotmail.com、live.com)に適用されます。SPFとDKIMに合格することに加えて、SPFまたはDKIMとアライメントの取れたp=none以上のDMARCが求められます。

ShopifyでSPF・DKIM・DMARCを設定するにはどうすればよいですか?

Shopifyの管理画面で送信者ドメインを認証し、DNSのホスティング先でDMARCレコードを1つ追加します。

Shopifyのメール設定ガイド (新しいタブで開きます)によると、2024年2月1日以降、ブランドのメールアドレスから送信するには、GmailとYahooが認証済みのドメインとDMARCレコードを求めています。認証用のレコードが設定されていない場合、Shopifyは送信者アドレスをstore+123@shopifyemail.comの形式に書き換えます。手順は次のとおりです。

  1. Shopifyの管理画面で設定 > 通知(Settings > Notifications)に移動します。
  2. 送信者のメールアドレス(Sender email)のセクションで、ドメインを認証する(authenticate your domain)をクリックします。
  3. 表示されたCNAMEレコードをすべてDNSプロバイダーに追加します。レコードの数は場合によって異なります。Shopifyによると、これらのレコードで送信者アドレスのSPFとDKIMに対応でき、IPアドレスを追加する必要はありません。
  4. DNSの変更が反映されるまで、最大48時間かかります。
  5. 名前が_dmarc、値がv=DMARC1; p=none;のTXTレコードを追加します。これはShopifyがデフォルトとして使う値です。

ドメインをShopifyで購入した場合や、Shopifyに移管した場合は、Shopifyがこれらのレコードを管理します。またShopifyは、1つのドメインに設定できるDMARCレコードは1つだけであること、厳格なアライメント設定(adkim=sやaspf=s)は削除するかrに変更すべきであることにも注意を促しています。

Shopifyの認証が対象とするのは、Shopifyが送信するメールです。キャンペーン配信に別のプラットフォームを使っている場合や、ヘルプデスクを使っている場合、スタッフのメールにGoogle Workspaceを使っている場合は、それぞれで個別にDKIMを設定する必要があります。バウンス用に自社ドメインを使うサービスには、それぞれのSPFエントリーも必要です。

WooCommerceでメール認証を設定するにはどうすればよいですか?

WooCommerce自身のドキュメントが推奨しているとおり、自社ドメインで署名する専用のプロバイダーを通じてWooCommerceのメールを送信します。

WooCommerceはWordPressのwp_mail()関数でメールを送信します。WooCommerceのメールに関するFAQ (新しいタブで開きます)では、自社サーバーのメール機能よりも信頼性が高いとして、専用のSMTPプロバイダーを推奨しています。一般的な設定方法は次のとおりです。

  1. トランザクションメールの配信サービスを選び、そこで自社ドメインを認証します。公開すべきDKIMレコードとSPFのincludeは、そのプロバイダーから提供されます。
  2. SMTPまたはAPI連携のプラグインで、WordPressをそのプロバイダーに接続します。
  3. WooCommerce > 設定 > メール(WooCommerce > Settings > Emails)で、差出人アドレス(From address)を自社ドメインのアドレスに設定します。WooCommerceは、GmailやYahooなどのフリーメールのアドレスを使うと、迷惑メールに振り分けられたりブロックされたりする可能性が高いと警告しています。
  4. _dmarc.yourdomainにDMARCレコードを公開します。
  5. WooCommerce > ステータス > ログ(WooCommerce > Status > Logs)を開き、ソースtransactional-emailsで絞り込むと、送信されたメッセージと失敗したメッセージを確認できます。

ウェブホスティングのサーバーもそのドメインでメールを送信している場合は、認証するか、送信を停止してください。アライメントの取れたSPFやDKIMなしで自社ドメインとして送信するシステムは、すべてDMARCに失敗します。

SPFの10回ルックアップ制限とは何ですか?どうすれば上限内に収められますか?

SPFのチェックで使えるDNSクエリを伴う項目は最大10個までです。1つでも超えると結果はpermerrorとなり、SPFは合格しません。

RFC 7208のセクション4.6.4 (新しいタブで開きます)には、カウント対象となる項目が挙げられています。include、a、mx、ptr、existsの各メカニズムと、redirect修飾子です。ip4、ip6、allの各メカニズムはカウントされません。制限は評価全体に適用されるため、includeの中でさらに入れ子になっているincludeもカウントされます。RFCはまた、「void lookup」(応答が返らないクエリ)を2回までに抑えることを推奨し、ptrメカニズムは公開すべきでないとしています。

10回以内に収める方法:

  • 使わなくなったサービスのincludeを削除します。
  • 固定アドレスで運用している自社サーバーには、ip4またはip6を使います。
  • マーケティングメールをnews.example.comなどのサブドメインに移します。サブドメインには独自のSPFレコードがあり、カウントも別になります。
  • SPFレコードを2つ公開してはいけません。RFC 7208は複数のレコードを禁止しており、評価結果はpermerrorになります。
example.com.        TXT  "v=spf1 include:_spf.google.com include:spf.example-esp.com ~all"
news.example.com.   TXT  "v=spf1 include:spf.example-marketing.com ~all"

spf.example-esp.comとspf.example-marketing.comは、利用しているプロバイダーから指定される値に置き換えてください。

DMARCをp=noneからp=rejectへ移行するにはどうすればよいですか?

まずレポートを受け取る設定のp=noneから始め、レポートで判明した正規の送信元をすべて修正してから、ポリシーを強化します。

段階レコード目的
1. 監視v=DMARC1; p=none; rua=mailto:dmarc@example.com自社ドメインとして誰が送信しているかについて、集約レポートを集めます
2. 修正変更なし正規の送信元すべてで、アライメントの取れたSPFまたはDKIMに合格させます
3. 隔離v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com失敗したメールは迷惑メールフォルダーに入ります
4. 拒否v=DMARC1; p=reject; rua=mailto:dmarc@example.com失敗したメールは受信を拒否されます

次の段階に進むのは、ストアのプラットフォーム、マーケティングツール、ヘルプデスク、スタッフのメールがすべて合格していることをレポートで確認できてからにしてください。集約レポートはRFC 9990 (新しいタブで開きます)で定義されています。ruaのアドレスがレポートサービスなど別のドメインにある場合は、そのドメインがレポートの受け取りを許可するレコードを公開する必要があります。

古いガイドでは、pct=25やpct=50で段階的に導入する方法が紹介されています。RFC 9989は、0と100以外の値の扱いが受信側によってまちまちだったことからpctを削除しました(レジストリ上の扱いは現在「historic」です)。代わりにt=yを指定すると、1段階弱いポリシー(たとえばrejectではなくquarantine)を適用するよう受信側に求めることができます。試験的な段階を設けたい場合は、割合を指定するのではなくt=yを使ってください。

_dmarc.example.com.  TXT  "v=DMARC1; p=quarantine; t=y; rua=mailto:dmarc@example.com"
_dmarc.example.com.  TXT  "v=DMARC1; p=reject; sp=reject; rua=mailto:dmarc@example.com"

ポリシーを強制適用の段階にすると、対応するメールボックスでロゴを表示するBIMIも利用できるようになります。GmailでBIMIを使うには、p=quarantineまたはp=rejectのDMARCと、Verified Mark Certificate(VMC)またはCommon Mark Certificate(CMC)が必要です(Google (新しいタブで開きます))。自社ドメインで受信するメールについては、MTA-STS(RFC 8461 (新しいタブで開きます))を使うと、自社のメールサーバーが信頼できる証明書によるTLSを提供していない場合は配信しないよう、送信側のサーバーに指示できます。

自社ストアのレコードはどうやって確認できますか?

digで3種類のレコードを照会するか、レコードを読み取ってくれるチェックツールを使います。

dig +short TXT example.com
dig +short TXT _dmarc.example.com
dig +short TXT selector._domainkey.example.com

DKIMのセレクターはプロバイダーが決めるもので、自社から送信したメッセージのDKIM-Signatureヘッダーにあるs=の値で確認できます。メール到達率レポートは公開DNSを読み取り、SPFのルックアップ回数を数え、一般的なDKIMセレクターを試し、DMARCのポリシー、rua、pct、BIMI、MTA-STSを確認します。正しいレコードは役立ちますが、どのようなレコードの組み合わせでも受信トレイへの到達は保証されません。メールボックスプロバイダーは、迷惑メールの報告や送信の振る舞いも考慮するためです。

よくある質問

1日の送信数が5,000件未満のストアでもDMARCは必要ですか?

GmailがDMARCを必須としているのは大量送信者だけですが、Shopifyは、ブランドのメールアドレスから送信するにはGmailとYahooが認証済みドメインとDMARCレコードを求めていると説明しています。p=noneのレコードはリスクが低く、レポートも受け取れるため、ほとんどのストアは公開しておくべきです。

1つのドメインにSPFレコードを2つ設定できますか?

いいえ。RFC 7208では、1つのドメインに複数のSPFレコードを持たせてはならないとされており、複数ある場合のSPF評価の結果はpermerrorになります。すべての送信元を1つのレコードにまとめてください。

p=rejectにすると、Shopifyの注文メールがブロックされますか?

ShopifyのCNAMEレコードが設定済みで、DMARCレポートでShopifyのメールがアライメントの取れたDKIMに合格していれば、ブロックされません。p=noneから先に進む前にレポートを確認し、Shopifyの推奨どおり、アライメントは緩やかな設定のままにしてください。

DMARCのpctタグはまだ有効ですか?

2026年5月に公開されたRFC 9989でpctは削除され、テストモード用にt=yが導入されました。GoogleのBIMIのガイダンスでは引き続きpct=100が求められていますが、これはタグがない場合のデフォルト値です。そのため、新しくレコードを作るならpctを省くのが最もシンプルです。

SPF・DKIM・DMARCに合格すれば、メールは必ず受信トレイに届きますか?

いいえ。認証は必要条件であって、保証ではありません。GmailとYahooは、迷惑メールの報告率、登録解除の処理、メッセージの形式も確認しています。

出典