保守先のお客様から「フォームからの問い合わせを取りこぼしている」と連絡がありました。調べると、フォームは2014年に無料配布されたPHPのプログラムで、通知メールの差出人を「お客様が入力したアドレス」にしてお店のサーバーから送っていました。Gmailがこれを拒否していました。
結論から書きます。原因は2つ重なっていました。「他人のアドレスを名乗って送る作り」と、「お店のドメインに送信者の署名(DKIM)がない」ことです。直し方は、差出人をお店のアドレスにし、お客様のアドレスは返信先(Reply-To)に移し、ドメインにDKIMを付ける。この3つです。同じ作りのフォームは、別のサイトにもありました。
きっかけ
海外にある店舗のサイトでした。問い合わせフォームと予約フォームの2本があり、どちらもHTMLのフォームからPHPのファイルに送って、そこからメールを出す仕組みです。PHPのファイルの頭に2014年の配布元の名前が書いてあります。
通知の宛先はお店のGmailアドレス、写しが2件。届かなくなったのがいつからかは、お店側では分かりませんでした。
最初に:作業する場所を整理
- サーバー(SSHで入れる契約)。フォームのPHPファイルと、送信に失敗したときの戻りメールが残る場所
- サーバーの管理パネル。ドメインごとのDKIMのオン・オフはここ
- テスト用の受信箱。自分宛てに送って、認証の結果(SPF・DKIM)をメールのヘッダーで見る
用語は3つだけ
- From(差出人):メールの「誰から」。受信側はこのドメインで本物かを判断します
- SPF・DKIM:差出人のドメインが「このサーバーから送ってよい」「この署名が付いていれば本物」と宣言する2つの仕組み。DNSに書きます
- Reply-To(返信先):受信者が「返信」を押したときの宛先。Fromと別にできます
手順0:戻りメールを探す【サーバー】

「届かない」の証拠は、送信元のサーバーに残っています。サーバーのメール保存先を見ると、10月17日にGmailからの戻りメールが1通ありました。要約するとこうです。
550-5.7.30 ... DKIM authentication didn't pass
Gmailは2024年2月1日から、Gmail宛てに送るすべての送信者にSPFかDKIMの認証を求めています(Googleのヘルプ「メール送信者のガイドライン」)。このフォームは、お客様が入力したアドレスを差出人にして、お店のサーバーから送っていました。つまりお店のサーバーが、お客様のドメインを名乗って送っている。お客様のドメインのSPFにお店のサーバーは書かれていないし、署名も付けられない。Gmailから見れば「認証されていない送信者」です。
自動返信のほうは、お店のGmailアドレスを差出人にしてお店のサーバーから送っていました。これも同じ理由で届かない見込みです。
さらに、お店のドメイン自体にDKIMのレコードがありませんでした。差出人をお店のアドレスに変えても、署名が付かなければ片方しか通りません。
手順1:ドメインにDKIMを付ける【サーバーの管理パネル】
サーバーの管理パネルで、お店のドメインのDKIMをオンにしました。パネルがDNSも持っている契約だったので、レコードは自動で入ります。これで「お店のアドレスを差出人にしてお店のサーバーから送る」メールに署名が付きます。
手順2:差出人と返信先を入れ替える【PHPファイル】
通知メールと自動返信、両方のPHPを直しました。変更前の控えを取ってから、次の形にします。
- 通知メール:From=お店のアドレス(info@お店のドメイン)、Reply-To=お客様が入力したアドレス
- 自動返信:From=お店のアドレス、Reply-To=お店のGmail(お客様が返信するとお店のGmailに届く)
- 送信コマンドの
-fオプションで、封筒の差出人(受信側がSPFを見るアドレス)もお店のアドレスに揃える
「お客様のアドレスを差出人にする」作りは、2014年当時は「返信ボタンで返せて便利」という理由で広く使われていました。いまは返信先(Reply-To)で同じ動きになり、差出人は自分のドメインにするのが前提です。
手順3:自分宛てに送って認証を見る【テスト用の受信箱】
問い合わせフォームから1通、自分のアドレスで送りました。届いた自動返信のヘッダーで、SPFとDKIMがどちらも合格になっていることを確認しました。
お店のGmailに通知が届いたかは、お店の受信箱でしか確かめられません。報告して、着信の確認をお願いしています。写しの宛先のうち1件は「宛先不明」で戻ってきていたので、外してよいかも併せて確認中です。予約フォームは同じ直し方をしましたが、テスト送信はまだです。
手順4:同じ作りが、別のサイトにもあった【DMARCレポート】
この会社の本社ドメインは、9月にメールサーバーを移していて、毎日DMARCレポート(受信側が「このドメインを名乗るメールをどこから受け取ったか」を送ってくる集計)が届きます。1か月分を集計すると、もう使っていないはずの旧サーバーから、本社ドメインを名乗るメールが2通出ていて、受信側で隔離されていました。
出どころは、別のサイトに置いてあった「メールフォームプロ」というフォームツールでした。自動返信の差出人が本社のアドレス、管理者通知の差出人がお客様のアドレス。前者は旧サーバーがSPFから外れたので不合格、後者は手順0と同じ構造です。
同じ要領で、差出人をそのサイトのドメインの noreply@ に変え、返信先を付け替えました(設定ファイル1か所と、送信部分のプログラム4か所)。テスト送信では、通知は受信トレイに入り、SPF・DKIMとも合格。
ところが、自動返信のほうはGmailで迷惑メールに入りました。理由の表示は「以前迷惑メールと判断されたメールに類似」。認証は通っているのに、過去に不合格だった自動返信と文面が同じなので、評判が引きずられています。これは時間と、文面を少し変えることでしか直りません。
つまずき早見表
| 起きたこと | 原因 | 対処 |
|---|---|---|
| フォームの通知がGmailに届かない | 差出人がお客様のアドレス=他人のドメインを名乗っている | 差出人を自社ドメインに、お客様は Reply-To へ |
| 差出人を直しても片方しか合格しない | ドメインにDKIMがない | サーバーパネルでDKIMをオンにする |
| 封筒の差出人が合わない | 送信コマンドの -f が未指定 | -f で自社アドレスを指定 |
| 使っていないサーバーから自社ドメインのメールが出ている | 旧サーバーに残ったフォームの自動返信 | DMARCレポートで出どころを探し、フォームを直すか止める |
| 認証が通ったのに迷惑メールに入る | 過去の不合格メールと文面が同じ | 文面を変える・時間を置く・受信側で「迷惑メールでない」を押してもらう |
| 写しの宛先から戻りメール | 退職などで消えたアドレス | 宛先一覧を先方と見直す |
確認方法:自分のサイトのフォームで見る3つ

- フォームから自分のアドレスで送り、届いた通知の「差出人」を見る。自分のアドレスが差出人になっていたら、この記事の型です
- 届いたメールのヘッダー(Gmailなら「メッセージのソースを表示」)で、SPF・DKIM・DMARCの結果を見る
- 自社ドメインのDKIMがオンかを、サーバーの管理パネルで見る。オフなら、フォーム以外のメールも同じ扱いを受けます
正直に書いておくこと
- お店のGmailへの着信は、当社からは確かめられません。先方の確認待ちです
- 「いつから届かなくなったか」は分かりませんでした。戻りメールは1通しか残っていません
- 迷惑メール判定の評判は、設定を直しても即日では戻りません
- 自社のサーバーから出るメールすべてに同じ条件がかかるので、フォーム1本を直して終わりではありません
要点3行
- 「お客様のアドレスを差出人にする」フォームは、2024年2月以降のGmailに届かない
- 直し方は、差出人を自社ドメイン・お客様は返信先・ドメインにDKIM、の3点
- 使っていないはずの旧サーバーから出ているメールは、DMARCレポートで見つかる