問い合わせフォームのメールが届かないときの原因と直し方
「ホームページから問い合わせをしたのに返事が無い」と電話で言われて、初めてフォームのメールが届いていなかったことに気付く。フォームの不具合は、こうした形で見つかることが少なくありません。送信した側には完了の画面が出ているため、会社の側からは問題に気付きにくいのが厄介なところです。
この記事では、問い合わせフォームのメールが届かないときの原因を、迷惑メールへの振り分け・送信元の認証・WordPressの送信の設定・受け取る側の設定・サーバー側の設定・送信の画面でのエラーに分け、切り分けの順番と直し方を整理します。最後に、直った後も届き続けているかを確かめる方法をまとめました。
まず症状から切り分ける
最初に、どこで止まっているかを大まかに見分けます。
| 症状 | 疑う場所 | 最初に見ること |
|---|---|---|
| 送信の画面でエラーが出る | フォームそのもの・サイトの部品 | エラーの文言、最近の更新の有無 |
| 完了の画面は出るが、どこにも届かない | サイトのサーバーの送信・送信元の設定 | 迷惑メールのフォルダ、送信元のアドレス |
| 迷惑メールのフォルダに入る | 送信元の認証 | 送信元のドメインと、SPF・DKIMの設定 |
| 自動返信は届くが、会社に届かない | 受け取る側の設定・宛先 | 宛先のアドレスの綴り、受信の振り分けの設定 |
| 会社には届くが、自動返信が届かない | 送信元の認証・訪問者側の受信 | 自動返信の送信元、Gmailなど外部のアドレスで試す |
| ある日を境に届かなくなった | 直前の変更 | 部品の更新、サーバーやメールのサービスの変更 |
最後の行は特に大切です。「いつから届かないか」と「その前後に何を変えたか」が分かると、原因はかなり絞り込めます。
原因1:迷惑メールに振り分けられている
もっとも多いのがこれです。受け取る側のメールのサービスが、フォームからのメールを迷惑メールと判定して、迷惑メールのフォルダや隔離の場所に入れています。
- 受け取る側の迷惑メールのフォルダを見る
- 会社のメールのサービスに、管理者だけが見られる隔離の場所があれば、そこも見る
- 見つかったら、「迷惑メールではない」と印を付け、送信元のアドレスを受信を許可する一覧に入れる
ただし、受け取る側で許可するのは応急の手当てです。自動返信を受け取るお客様の側でも同じように迷惑メールに入っている可能性があるため、次の送信元の認証も合わせて確かめます。
原因2:送信元のドメインが認証されていない
メールの世界では、送信元を偽ったなりすましのメールを防ぐため、SPF(このドメインのメールを送ってよいサーバーの一覧をDNSに書いておく仕組み)やDKIM(メールに電子署名を付けて、途中で改ざんされていないことを示す仕組み)、DMARC(SPFやDKIMで確かめられなかったメールの扱いを、ドメインの持ち主が示す仕組み)が使われています。
Googleの「メール送信者のガイドライン」では、2024年2月1日から、個人のGmailのアカウントにメールを送るすべての送信者に、SPFかDKIMの設定などを求めています。1日に5,000通以上を送る送信者には、SPFとDKIMの両方とDMARCの設定も求めています。フォームの通知のように送る数が少なくても、認証が無いメールは迷惑メールと判定されやすくなります。
確かめることは次の通りです。
- フォームのメールの送信元のアドレスのドメインを確かめる(例: 「info@」の後ろの部分)
- そのドメインのDNSに、サイトのサーバーからの送信を許すSPFの設定があるか
- サーバー会社やメールのサービスの案内に沿って、DKIMの設定ができるか
DNSの設定は、ドメインの管理会社かサーバー会社の画面で行います。どこで管理しているかが分からない場合は、サーバーとドメインの違いの記事を参考に、まず管理している場所を確かめてください。
原因3:WordPressの送信の設定(Contact Form 7など)
WordPressのフォームは、多くの場合、WordPressの「wp_mail」という仕組みでメールを送ります。WordPressの公式の解説では、この処理が成功しても、受け取った人にメールが届いたとは限らないと明記されています。完了の画面が出ても安心できないのはこのためです。
WordPressで広く使われているフォームの部品「Contact Form 7」で届かないときは、次の順で確かめます。
- 送信元のアドレス: フォームの編集画面の「メール」の欄で、送信元がサイトと同じドメインのアドレスになっているか。訪問者が入力したアドレスを送信元にしていると、なりすましと判定されやすくなります。Contact Form 7は、この状態のときに「サイトのドメインに属していないメールアドレスが送信元に設定されています。」という注意を設定の画面に出します
- 返信先: 訪問者のアドレスは、送信元ではなく追加ヘッダーの返信先(Reply-To)に入れる。こうすると、届いたメールに返信するだけで訪問者に返せます
- 宛先: 宛先のアドレスに綴りの誤りが無いか、今も使われているアドレスか
- SMTPでの送信: それでも届かない場合は、サイトのサーバーから直接送るのではなく、会社のメールサーバーにログインして送る設定(SMTP)に切り替える。WordPressでは、SMTPで送るための部品を追加して設定するのが一般的です
原因4:受け取る側の設定
- 受信の振り分けの規則で、別のフォルダに移されていないか
- メールボックスの容量がいっぱいになっていないか
- 宛先が退職者のアドレスや、転送をやめたアドレスになっていないか
- 社内の誰が通知を受け、誰が返事をするかが決まっているか
最後の点は技術の問題ではありませんが、「届いていたのに誰も見ていなかった」も、問い合わせを取りこぼす原因として少なくありません。
原因5:サーバー側の設定
- 会社のメールを別のサービスで受けている場合: 会社のメールを、サイトのサーバーとは別のメールのサービスで受けていると、サーバーの設定によっては、同じドメイン宛てのメールをサーバーの中だけで受け取ってしまい、本来のメールの受信箱に届かないことがあります。メールを受けるサーバーはMXレコード(ドメイン宛てのメールを受けるサーバーの指定)で決まります。サーバーの管理画面に、このドメインのメールを外部で受ける設定があれば確かめます
- 送信の制限: サーバーによっては、1時間あたりの送信の数に上限があったり、迷惑メールの送信元と判定されたサーバーからの送信が受け取りを拒まれたりします
- サーバーやメールのサービスの乗り換え: 乗り換えの後に、SPFの設定やSMTPの設定を新しい環境に合わせていないと、届かなくなります
原因6:送信の画面でエラーが出る
送信ボタンを押した時点でエラーが出る場合は、メールより手前のフォームそのものの問題です。
- 必須の項目の入力の確認が厳しすぎて、正しく入力しても送れない
- いたずらの送信を防ぐ仕組みの設定が古く、普通の送信まで止めている
- サイトの部品の更新の後に、部品どうしの相性で動かなくなった
- サーバーのPHP(WordPressを動かす言語)の版を上げた後に、古い部品が動かなくなった
部品の更新の後に起きた場合は、更新の手順と戻し方をWordPressを更新しないとどうなるかの記事にまとめています。フォームの項目そのものの見直しは問い合わせフォームの項目の決め方の記事をご覧ください。
直った後に、届き続けているかを確かめる
フォームは、一度直っても、部品の更新やサーバーの変更で再び届かなくなることがあります。次の確かめ方を習慣にしておくと、取りこぼしを早く見つけられます。
- 月に1回、決まった日にフォームから試しに送る
- 会社のアドレスと、Gmailなど外部のアドレスの両方で、自動返信が届くかを見る
- サイトの部品の更新、サーバーやメールのサービスの変更の後は、その日のうちに送ってみる
- 試しの送信の結果を、日付とともに記録しておく
フォームの定期の確認を保守の契約で頼む場合は、何をどの頻度で確かめるかを契約で決めておきます。考え方は保守契約に含まれるものの記事にまとめています。
まとめ
問い合わせフォームのメールが届かないときは、迷惑メールのフォルダ、送信元のドメインの認証、フォームの送信元と返信先の設定、受け取る側、サーバー側の順に確かめると、多くの場合は原因にたどり着けます。完了の画面が出ることは、届いたことの証明にはなりません。定期的に実際に送って確かめることが、いちばん確実な予防です。
Lapisデザインラボの月額のサイト保守では、お問い合わせフォームが届くかの定期確認をお引き受けしています。内容はサイト保守・更新をご覧ください。
よくある質問
フォームの送信完了の画面が出たのに、メールが届かないのはなぜですか。
送信完了の画面は、サイトのサーバーがメールを送り出そうとしたことを示すだけで、相手に届いたことまでは保証しません。WordPressの公式の解説でも、送信の処理が成功しても受け取った人に届いたとは限らないとされています。迷惑メールのフォルダ、送信元の認証、サーバーの送信の設定の順に確かめます。
Contact Form 7のメールが届きません。どこを見ればよいですか。
まずフォームの「メール」の設定で、送信元のアドレスがサイトと同じドメインになっているかを見ます。訪問者のアドレスを送信元にしていると、受け取る側で迷惑メールと判定されやすくなります。訪問者のアドレスは返信先の欄に入れる形にします。それでも届かない場合は、メールサーバーを経由して送る設定(SMTP)を検討します。
フォームのメールが届いているかは、どのくらいの頻度で確かめればよいですか。
月に1回、実際にフォームから送ってみるのが目安です。サイトの部品の更新、サーバーの設定の変更、メールのサービスの乗り換えの後は、その都度確かめます。届かない状態は会社の側からは気付きにくいため、決まった日に試す習慣にしておくと安心です。