この記事の結論
問い合わせフォームのメールが届かない、または迷惑メールに入るときは、まず「そのメールが、差出人のドメインから正しく送られたもの」だと受け取る側が確かめられる状態になっているかを見直します。
確かめる仕組みが SPF・DKIM・DMARC で、どれもドメインの設定(DNS)に書きます。
Gmailは2024年2月から、個人用のGmailに送るすべての送信者に、SPF か DKIM の設定を求めています。
フォームで特に多いのは、送ってきた人のアドレスを差出人にしてしまう作りです。
差出人は自社のドメインのアドレスに固定し、送ってきた人のアドレスは返信先(Reply-To)に入れます。
届いたメールのヘッダーにある Authentication-Results を見れば、どこで認証に落ちているかが分かります。
Gmailが、送る側に求めていること
フォームのメールが届かない、と聞いたら、最初に思い出してほしいのがこの決まりです。
Gmailは2024年2月1日から、@gmail.com などの個人用のアカウントにメールを送る送信者に、次のことを求めています(Gmail ヘルプ:メール送信者のガイドライン、2026年10月4日確認)。
| すべての送信者 | 1日5,000件以上送る送信者 | |
|---|---|---|
| 送信元の認証 | SPF か DKIM のどちらか | SPF と DKIM の両方、さらに DMARC |
| 差出人との一致 | — | From のドメインが、SPF か DKIM のドメインと一致 |
| そのほか | 送信サーバーの名前とIPアドレスの対応(正引き・逆引き)の登録、暗号化した接続、迷惑メールとして報告される率を0.3%未満に | 上に加えて、ワンクリックの配信停止 |
満たさないメールは、届かなかったり、迷惑メールに分類されたりすることがある、とされています。
Yahooも、自社のメールのドメインに向けて、同じ時期に同じ形の要件を出しています。
日本の Yahoo!メールとは別の会社です(Yahoo Sender Hub:Sender Best Practices、2026年10月4日確認)。
問い合わせフォームの通知の数なら、関係するのはたいてい左の列です。
左の列でも、SPF か DKIM のどちらもない送信は、要件を満たしていません。
SPF・DKIM・DMARCを、ひとことで
3つとも、ドメインの設定に TXT という種類の記録を足して使います。
| 名前 | 確かめること | 設定の例 |
|---|---|---|
| SPF | このサーバーは、このドメインの名前でメールを送ってよいか | v=spf1 include:(送信サービスの指定) ~all |
| DKIM | メールに付いた電子署名が、そのドメインの鍵で付けられ、途中で書き換えられていないか | (セレクタ)._domainkey に公開鍵を置く |
| DMARC | SPF や DKIM に落ちたメールを、受け取る側でどう扱ってほしいか | _dmarc に v=DMARC1; p=none など |
SPF の最後の ~all は、記録にないサーバーから来たメールを迷惑メールとして扱うよう、受け取る側に伝える書き方です(Google Workspace 管理者ヘルプ:SPF を設定する、2026年10月4日確認)。
DMARC の p= には、そのまま届ける none、迷惑メールに入れる quarantine、受け取らない reject のどれかを書きます(Google Workspace 管理者ヘルプ:DMARC を設定する、2026年10月4日確認)。
Googleは、SPF と DKIM を設定してから48時間あけて DMARC を入れるよう書いています(同じページ)。
SPF で気をつけたい決まりが2つあります。
1つのドメインに SPF の記録は1つだけです。
メールの送信サービスを足すたびに v=spf1 から始まる行を増やすと、記録が2つになり、SPF の判定そのものがエラーになります(RFC 7208、3.2節と4.5節)。
足すときは、いまある1行の中に include: を書き足します。
もう1つは、include や a、mx のように、判定のたびにDNSを引く書き方は、合わせて10個までという上限です(同じRFCの4.6.4節)。
フォームで起きやすい原因
送ってきた人のアドレスを、差出人にしている
フォームの通知を「お客様から届いたメール」のように見せたくて、入力されたアドレスを From に入れる作りがあります。
たとえば入力が @gmail.com なら、自社のサーバーが「gmail.com からのメール」を名乗って送ることになります。
SPF も DKIM も、gmail.com の名前では通りません。
Gmailは、From に Gmail のアドレスを偽って使うことをはっきり禁じていて、DMARC の検疫(quarantine)を当てはめると書いています(メール送信者のガイドライン)。
直し方は、差出人を自社のドメインのアドレスに固定し、入力されたアドレスを返信先(Reply-To)に入れることです。
受け取った側で「返信」を押せば、送ってきた人に返せます。
自社のドメインの名前で、別のサーバーから送っている
レンタルサーバーのフォームや、外部のフォームのサービスから、自社のドメインのアドレス(info@ など)を差出人にして送っている場合です。
そのサーバーが自社のドメインの SPF に入っていない、そのサービス用の DKIM の鍵を置いていない、のどちらかだと、認証に落ちます。
フォームの設定画面と、ドメインの設定(DNS)の画面は、たいてい別の会社の管理画面にあるので、片方だけ直して終わりやすい所です。
サイトの引っ越しで、SPF の意味が変わる
これは私たちのドメインで実際に手を入れた所です。
2026年9月に、wwwなしの bundlyze.co.jp を別の置き場所へ移す準備をしていて、SPF の記録に +a:bundlyze.co.jp という指定が入っていることに気づきました。
これは「bundlyze.co.jp のサイトのアドレス(Aレコード)が指すサーバーに、メールの送信を許す」という意味です。
サイトの置き場所を移すと、移した先のサーバーが、自動的にメールを送ってよい相手になってしまいます。
当時は、同じサーバーを指す別の指定が SPF にすでに入っていて、その1つを消しても送信には困らないことを確かめました。
そこで9月14日、サイトの向き先を変える前に、その指定だけを SPF から消しています。
順番を逆にすると、短いあいだでも、他人のサーバーに送信を許すことになるからです。
サイトの作業でも、SPF に a の指定があるなら、メールの側に影響が出ることがあります。
届いたメールのヘッダーで、どこで落ちたかを見る
推測で設定を触る前に、実際に届いた1通を見ます。
パソコンのGmailなら、メールを開いて、返信アイコンの横のその他アイコンから「メッセージのソースを表示」を選ぶと、ヘッダーの全体が出ます(Gmail ヘルプ:詳細ヘッダーからメールの経路を確認する、2026年10月4日確認)。
探すのは Authentication-Results という行です。
受け取ったサーバーが、認証の結果を書き込む欄として決められています(RFC 8601)。
中身はおおよそ次のような形です。
ドメインは例です。
Authentication-Results: mx.google.com;
dkim=pass header.i=@example.co.jp;
spf=pass smtp.mailfrom=bounce@mail.example.co.jp;
dmarc=pass header.from=example.co.jp
| 見る所 | 読み方 |
|---|---|
spf= | pass なら、送ったサーバーが SPF で許されている。fail や softfail なら、SPF の記録にそのサーバーがない |
dkim= | pass なら署名が正しい。none なら署名がない。DKIM の鍵を置いていない、または送信サービス側で有効にしていない |
header.i= や header.d= のドメイン | 署名した会社やサービスのドメイン。差出人のドメインと違うなら、送信サービスの名前で署名されていて、自社のドメインの署名ではない |
dmarc= | pass なら、差出人のドメインの DMARC に通っている。fail なら、差出人のドメインと一致する形では SPF も DKIM も通っていない |
smtp.mailfrom= | 見えない側の差出人。送信サービスを使うと、ここがサービスのドメインになることがある |
Android の Gmail アプリでは、メールの詳細に「送信元」と「署名元」が出ていれば認証されていて、差出人の名前の横に疑問符が出るものは認証されていない、という見分け方もあります(Gmail ヘルプ:Gmail のメールが認証されているかどうかを確認する、2026年10月4日確認)。
確かめる順番
私は、次の順で見ていきます。
- フォームから1件送り、通知が受信箱・迷惑メールのどちらに入ったか、そもそも届いていないかを分ける
- 届いた1通のヘッダーで、
spf・dkim・dmarcの結果を見る - From が、送ってきた人のアドレスになっていないかを見る。なっていれば、自社のアドレスに固定して Reply-To に移す
- フォームのメールを送っているサーバーやサービスを確かめ、その名前が SPF の1行に入っているか、DKIM の鍵が置かれているかを見る
- SPF の記録が1つだけか、DNSを引く指定が10個を超えていないかを見る
- 通知の送り先が、迷惑メールを自動で消す設定や、転送の途中で弾かれる設定になっていないかを見る
1で「届いていない」なら、ヘッダーは見られません。
その場合は、フォームのサービスやサーバーの送信の記録(ログ)から、送れているのに届いていないのか、送る前に失敗しているのかを見ます。
私たちのフォームの送り方
このサイトの問い合わせフォームは、送信を受けると、メールの送信サービスを通して、社内のアドレスに通知を送ります。
差出人は noreply@bundlyze.co.jp に固定していて、入力されたアドレスは返信先(Reply-To)に入れています。
返信先に入る値には、改行などの制御文字を取り除いてから使っています。
ヘッダーに余計な行を差し込まれないためです。
自社のドメインの名前で送ると決めたのは、2026年7月20日です。
記録では、その日、送信サービスを使うための鍵がまだ設定されておらず、フォームの送り先がエラーを返す状態だったので、いったん外部の無料のフォーム送信サービスに切り替えました。
ただ、問い合わせの個人情報を外部の無料のサービスに通さないと決めて、4分後に元に戻しています。
送信サービスでは自社のドメインの確認が6月に済んでいたので、自社のドメインの名前で送る形にしました。
差出人の既定を noreply@ にしたのは、その2日後に送信の仕組みを引っ越したときです。
制御文字を取り除く処理と、次に書く記録の仕組みは、8月24日にフォームを作り直したときに足しました。
10月4日にドメインの設定を引くと、送信サービス用の DKIM の公開鍵と、送信サービスが使う送信用のサブドメインの SPF が置かれていました。
差出人のドメインで DKIM の署名を付けるための準備です。
実際に署名が通っているかは、届いた通知のヘッダーで確かめるのが確実なので、次に問い合わせが届いたときに見るつもりです。
もう1つ、メールより先に、原則として問い合わせの中身を記録に残す作りにしています。
メールの側で何かあっても、問い合わせそのものは消えません。
よくある質問
自分のパソコンからテストすると届くのに、お客様のGmailには届かないことがありますか?
SPF と DKIM のどちらか一方だけで足りますか?
DMARC は、いきなり p=reject にしてもいいですか?
送ってきた人のアドレスを From にしないと、返信が面倒になりませんか?
フォームが止まっていないかを日ごろ見張る方法は予約・問い合わせフォームが止まっていないか、見張る方法に、入力のしやすさの見直しは問い合わせフォームを見直すチェックリストに、問い合わせが減ったときに原因を探す順番はホームページからの問い合わせが減ったときに書いています。
bundlyzeは、大阪市北区のグラングリーン大阪を拠点に、大阪・兵庫を中心とした関西の会社からのご相談に対応していて、打ち合わせはWeb会議でも対面でもできます。
全国からオンラインでもご相談いただけます。
この記事を書いた津嘉山は、業務システム開発とAWSを専門とするエンジニアで、このサイトの問い合わせの受け口を自分で作り、ドメインの引っ越しでは、サイトの向き先より先に SPF を自分で書き直しました。
フォームから1件送り、届いたメールの Authentication-Results の行を読んでみるところから始めてください。
ご相談
ホームページやLPについて、いまの状況をお聞かせください。
「何から手をつければいいか分からない」という段階からで構いません。返信は担当者が直接お送りします。
