SPFとDKIMとは、メールを受け取った側が「このメールは、差出人のドメインが本当に許可した仕組みから送られたものか」を確かめるための設定です。どちらもドメインのDNS(ドメインの設定情報を置く場所)に数行を追加して使います。

Zoho CRMで資料請求フォームを作り、ダウンロードした方に自動返信メールを送る。よくある構成ですが、この自動返信が相手の迷惑メールフォルダに入ってしまうことがあります。原因の多くは、送信元ドメインにSPFとDKIMが設定されていないことです。

この記事では、中小の人材紹介企業の資料請求フォーム公開に向けて当社が作成した設定手順書をもとに、設定作業そのものより間違えやすい「落とし穴」と、作業前に確かめておくことを整理します。SPF・DKIM・DMARCそれぞれの基本は、ZohoCRM / CampaignでSPF/DKIM/DMARC対応をするためにでも解説しています。

なぜ自動返信が迷惑メールに入るのか

Zoho CRMから自社ドメインのアドレスを差出人にしてメールを送ると、実際にメールを送り出すのはZohoのサーバーです。受信側(GmailやOutlookなど)から見ると、「差出人は自社ドメインなのに、送ってきたのは別のサーバー」という状態になります。

このとき、DNSに何も書かれていなければ、受信側は「このサーバーがこのドメインの代わりに送ってよいのか」を判断できません。その結果、迷惑メールに振り分けられやすくなります。資料請求の自動返信が届かないと、資料を求めた見込み客に資料が渡らず、問い合わせの機会そのものを失います。

GoogleはGmail宛てに送るすべての送信者に、SPFかDKIMのどちらかを設定するよう求めています。1日5,000通以上を送る送信者には、SPF・DKIM・DMARCのすべてが必要です(Googleの「メール送信者のガイドライン」による)。自動返信の通数が少なくても、設定しておくべきものと考えてください。

それぞれの役割を一言でまとめると、次のとおりです。

設定 何を宣言するか DNSに置く数
SPF このドメインのメールを送ってよいサーバーの一覧 ドメインに1行だけ
DKIM メールに付ける電子署名を確かめるための公開鍵 送信サービスごとに1つずつ
DMARC SPF・DKIMに失敗したメールをどう扱ってほしいか ドメインに1行(_dmarc という名前の場所)

落とし穴1:SPFレコードを複数登録するとどうなる?両方とも無効になる

送信元の記録を二行に分けて登録すると両方とも無効になり、一行にまとめれば有効になることを、二つの記録カードの対比で示した図

いちばん間違えやすいのがここです。Zoho CRMとZoho Campaignsの両方から送る場合、それぞれの画面にSPFの値が表示されます。これを素直に2行登録したくなりますが、これは誤りです。

誤った例(2行に分けている):

v=spf1 include:(CRMの値) ~all
v=spf1 include:(Campaignsの値) ~all

正しい例(1行にまとめている):

v=spf1 include:(普段のメールの値) include:(CRMの値) include:(Campaignsの値) ~all

SPFの仕様(RFC 7208 §3.2)では、1つのドメインにSPFレコードが2つ以上あると、判定結果は permerror(恒久的なエラー)になると定められています。「CRMの分だけは通る」ということも起きません。Zoho CRMのヘルプにも、SPFレコードが複数あると検証に失敗し迷惑メールになりうるため、既にレコードがあるなら新しく追加しないよう書かれています。

すでにSPFが1行ある場合は、その行の v=spf1 のあとに include を書き足します。使っている送信サービスの数だけ include を並べて、1行に収めるのが原則です。

なお、末尾の ~all は「一覧にない送信元は、正規ではない可能性が高い」という意味の弱い宣言(softfail)です。仕様上、受信側はこの結果だけを理由にメールを拒否すべきではないとされています。-all はより強い宣言(fail)なので、送信元の洗い出しに自信が持てるまでは ~all から始めるのが無難です。

落とし穴2:普段のメールを入れ忘れると、業務メールが迷惑扱いになる

SPFは「この一覧に載っていない送信元は正規ではない」と宣言する設定です。つまり、設定した瞬間にルールが有効になります。

いま問題が起きていないのは、そもそも宣言がされていないからです。ここでZohoの分だけを書いたSPFを登録すると、これまで普通に届いていた社員のメールや、ホームページの問い合わせフォームからの通知が「一覧にない送信元」になってしまいます。自動返信を直すつもりが、普段の業務メールを迷惑メール側に追いやる。これが2つめの落とし穴です。

そのため当社では、設定当日の前に、お客様へ次の質問をしています。

作業前チェックリスト:そのドメインから何がメールを送っているか

  • 社員のメールアドレス(使っているサービス:Google Workspace/Microsoft 365/レンタルサーバー/その他)
  • ホームページの問い合わせフォームからの自動返信・通知
  • Zoho以外のメール配信サービス
  • 請求書発行・予約・EC など、業務システムからの通知メール
  • その他、心当たりのあるもの

ここで挙がったサービスごとに、各サービスのヘルプでSPFに入れる include の値を確かめ、1行にまとめます。「ホームページを作った会社」や「メールサーバーを契約した会社」に聞かないと分からないことも多いので、作業日の前に確認をお願いしておくのが確実です。

あわせて、DNSを管理している会社(ドメインを契約している会社)と、管理画面のログイン情報も事前にそろえておきます。当日にログイン情報が見つからず作業が止まる、というのはよくあることです。

落とし穴3:include の値を推測で書く

SPFに書く include の値は、Zohoの契約地域(データセンター)によって異なります。Zohoの公式ヘルプでは、たとえば次のように地域ごとに値が分かれています(2026年10月7日に確認)。

サービス US EU JP
Zoho CRM include:one.zoho.com include:one.zoho.eu include:one.zoho.jp
Zoho Campaigns include:zcsend.net include:eu.zcsend.net include:sender.zcsend.jp

ネット上の記事に書かれた値をそのまま使うと、契約地域が違えば効きません。値は必ず自社のZohoの管理画面に表示されたものをコピー&ペーストします。 手で打ち直すと、打ち間違いの原因になります。この記事の表も、あくまで「地域で値が違う」ことを示すための例です。

落とし穴4:SPFのincludeは何個まで?問い合わせ10回の上限

SPFには、判定のためのDNS問い合わせは10回までという上限があります(RFC 7208)。数えるのは include・a・mx・ptr・exists と redirect です。include 先の中にさらに include があれば、それも数に入ります。

Google WorkspaceやMicrosoft 365のような普段のメールに、Zoho CRM、Zoho Campaigns、さらに別の配信サービスや業務システムを重ねていくと、この上限に近づきます。超えると判定は permerror になり、SPFが効いていないのと同じ状態になります。

設定を終えたら、SPFのチェックツールで permerror が出ていないか、問い合わせ回数が上限に近くないかを確かめてください。もう使っていないサービスの include が残っていたら、このタイミングで外します。

DKIMはサービスごとに別の行で登録してよい

SPFと違い、DKIMは送信サービスごとに別々の行を登録して問題ありません。DKIMには「セレクタ」という名前があり、(セレクタ)._domainkey.(ドメイン) という場所に公開鍵を置きます。セレクタが違えば、1つのドメインに複数の鍵を同時に置けます(RFC 6376)。

Zoho Campaignsのヘルプでは、画面に表示されるホスト名のうち、自社ドメインより前の部分をDNSの「ホスト」欄に貼るよう案内されています。DNS管理画面によっては、ホスト欄にドメイン名まで入れると二重になるので注意してください。

Campaignsを今使っていなくても、DNS作業は1回にまとめる

この会社では、メール配信のZoho Campaignsはまだ使っていませんでした。それでも、CRMの設定と同じ日にCampaigns分もまとめて登録することにしました。

理由は、あとからCampaignsを追加すると、SPFの1行を書き換え、DKIMを1つ足すDNS作業がもう一度発生するからです。DNSの管理画面に入れる人が社外にいる場合、日程調整からやり直しになります。近いうちに使う見込みがあるサービスは、最初の1回で入れておくほうが手間が少なく済みます。Campaignsで自動メールを送る設定そのものは「ZOHO Campaignsを使用した自動メール送信の設定について」で紹介しています。

当日の手順(30分ほどを想定)

当社の手順書では、この作業をお客様との定例会議の中で、画面を共有しながら一緒に行う想定です。事前チェックが済んでいれば、30分ほどを見込んでいます。

  1. Zoho CRMの管理画面で、SPF・DKIMの値を確認する 画面に表示された値をコピーします。この記事や過去の資料の値は使いません。
  2. Zoho Campaignsの管理画面でも同じように確認する Campaignsでは、まず送信ドメインを追加すると値が表示されます。
  3. DNSに登録する
    # 種類 内容
    1 SPF(TXT) 1行だけ。普段のメール・CRM・Campaignsをまとめる
    2 DKIM(CRM用) CRMの画面に出たホスト名と値
    3 DKIM(Campaigns用) Campaignsの画面に出たホスト名と値
  4. Zohoの画面で検証する 各画面の確認ボタンで検証します。登録直後は反映前で通らないことがあります。
  5. 時間をおいて再確認する DNSの反映には時間がかかることがあるため、当社の手順書では翌日にもう一度確認する想定にしています。

DNSの反映を待つ時間があるので、資料請求フォームの公開日から逆算して、早めに実施するのがおすすめです。フォームを先に公開すると、反映までのあいだに申し込んだ方へ自動返信が届かないおそれがあります。

設定のあとにやること

  • 送信元メールアドレスの認証(Zohoから届く確認コードの入力)
  • 社外のアドレス(Gmailなど)宛てにテスト送信し、迷惑メールに入らないことを確かめる
  • SPFのチェックツールで permerror が出ていないことを確かめる
  • 問題がなければ、資料請求フォームを公開する

フォームを公開したあとは、届かなかったメール(バウンス)の扱いも決めておくと安心です。宛先不明で戻ったメールをCRMに反映する方法は「Zoho CRMでメール不達(ハードバウンス)を検知し、連絡先へ自動反映する方法」にまとめています。資料請求フォームを自社サイトに設置するときの注意は「Zoho CRMのWebフォームを設置したらSalesIQのチャットが「オフライン」のまま」も参考になります。

よくある失敗のまとめ

失敗 何が起きるか
SPFを2行以上登録した SPFがすべて無効(permerror)になり、迷惑メール行きのまま
普段のメールをSPFに入れ忘れた これまで届いていた業務メールが迷惑扱いになる
include を推測で書いた 契約地域が違うと効かない
include を増やしすぎた 問い合わせ回数の上限(10回)を超えて permerror になる
登録してすぐ確認した まだ反映されていないだけ。時間をおいて再確認する
値を手で打ち直した 打ち間違い。必ずコピー&ペーストする

DMARCはSPF・DKIMが安定してから

DMARCは、SPF・DKIMの判定に失敗したメールを受信側にどう扱ってほしいかを宣言する設定です。_dmarc.(ドメイン) という場所にTXTレコードを置きます。ポリシーには none(特に何もしない)、quarantine(疑わしいものとして扱う)、reject(受け取りを拒否する)があります(RFC 7489)。

今回の作業ではDMARCを対象外にしました。SPF・DKIMが安定して通ることを確かめてから、まず p=none で始め、集計レポート(rua)で入れ忘れた送信元がないかを見ながら段階的に強めていく進め方が安全です。いきなり reject にすると、洗い出しから漏れた送信元のメールが届かなくなります。

もう1点、DMARCでは、SPFやDKIMが通るだけでなく、判定に使われたドメインが差出人(From)のドメインと一致しているかも見られます。サービスによっては、SPFの判定に使われるドメインが差出人と別になる構成があります。Zohoから送るメールについてDMARCを始める前に、DKIMが差出人のドメインで通っているかを優先して確かめ、詳しい構成は各サービスの公式ヘルプで確認してください。

まとめ

Zohoから送る自動返信が迷惑メールに入るときは、まず送信ドメインのSPFとDKIMを確かめます。設定そのものはDNSに数行を足すだけですが、間違えやすいのは次の3点です。

  • SPFは1行だけ。サービスごとに分けると全部無効になる
  • SPFは宣言した瞬間に有効になる。普段のメールの送信元を先に洗い出す
  • 値は地域で変わる。必ず管理画面の表示値をコピーする

ドメインから何がメールを送っているか分からない、DNSを誰が管理しているか分からない、という段階からでも無料相談でご相談いただけます。

よくある質問

SPFのレコードが2つあるとどうなりますか?

SPFの仕様(RFC 7208)では、1つのドメインにSPFレコードが複数あると判定結果は permerror(恒久的なエラー)になります。片方だけ有効になることはありません。include を並べて1行にまとめてください。

DKIMはCRM用とCampaigns用で2つ登録して大丈夫ですか?

大丈夫です。DKIMはセレクタと呼ばれる名前で鍵を区別する仕組みで、1つのドメインに複数の鍵を置けます。Zohoの各サービスの画面に表示されたホスト名と値を、それぞれ登録します。

DMARCも同時に設定したほうがよいですか?

当社では、SPFとDKIMが安定して通るのを確認してから、DMARCを p=none(監視のみ)で始める進め方をおすすめしています。いきなり厳しいポリシーにすると、入れ忘れた送信元のメールが届かなくなるおそれがあるためです。

DNSに登録したのに、Zohoの画面で確認が通りません。

DNSの変更が反映されるまで時間がかかることがあります。値のコピー漏れや余計な空白がないかを確かめたうえで、時間をおいて再確認してください。当社の手順書では、翌日にもう一度確認する想定にしています。

SPFのincludeはいくつまで書けますか?

include の数そのものではなく、判定のためのDNS問い合わせが10回までという上限があります(RFC 7208)。include・a・mx・ptr・exists・redirect が数に入り、include 先の中のincludeも数えます。超えると permerror になるため、使っていないサービスの include は外します。