【保存版】Contact Form 7からメールが届かないときの原因と対処法まとめ

Contact Form 7(CF7)でフォームは送信できるのに、「メールが届かない」「届いたり届かなかったりする」という事はよく起こります。
多くの原因が考えられますが、それぞれの原因と対処法を“順番にチェックできる形” でまとめました。
よくある症状パターン
以下のような状態になっている場合、このあと紹介する原因に当てはまる可能性があります。
- 送信完了メッセージは出るのに、メールが届かない
- Gmailには届くのに、会社アドレスには届かない
- テスト送信は届いていたのに、最近急に届かなくなった
- フォームからの問い合わせが ある日を境にゼロになった
- スパム判定されて届いたり届かなかったりする
確認するべき3つのポイント
CF7が原因ではなく、初歩的な部分が原因のことが多いです。
まずはここから順番に確認してみてください。
【1】送信先メールアドレスのタイプミス
意外と多いのがタイプミス。初歩的なミスですが、原因がこれだけということも少なくありません。
inof@→info@になっている- メールアドレスの末尾を
.comにしたつもりが.con - フォーム設定でToとFromを混同している
まず送信先のメールアドレスを確実にチェックしましょう。
【2】迷惑メールフォルダを確認する
Gmail / Outlook / 会社のドメインメールは、問い合わせメールが迷惑メールに入りやすいです。
特に会社メールは、
- SPF未設定のドメイン
- なりすまし判定
- やりとりのないアドレスからの受信拒否設定
などが原因で届かないことがよくあります。
もし迷惑メールに届いていたら、メールの設定を変更し迷惑メールに分類されない様にするか、SMTP設定などで弾かれない様に調整します。
【3】別のメールアドレスでテスト送信してみる
原因を切り分けるために、
- Gmail
- Outlook
- iCloudメール
など、複数のメールアドレスでテストしてみましょう。
Gmailには届くのに会社アドレスには届かない → メール側の問題
どちらにも届かない → サーバー側 or CF7側の問題
と判断できます。
自力での解決が難しい場合はこちらまでご相談ください。→お問い合わせ
それでも改善しない場合に疑うべきポイント
少し専門的な内容になりますが、1つずつ確認すれば解決できる可能性があります。
サーバーのメール送信(PHP mail)が制限されている
レンタルサーバー側で
- スパム対策
- 送信制限
- 宛先の判定ルール
- サーバーメンテナンス
により、メールが送信できないことがあります。
特に、
- ロリポップ
- ConoHa
- 旧バージョンのエックスサーバー設定
はこの問題が起きやすいです。
これらが原因の場合は、サーバー側のメール設定の変更や、サーバーのプランを変更する必要が出てきます。
原因が特定できないときは契約しているサーバーに問い合わせてみると良いでしょう。
SPFレコード(DNS設定)が不十分で弾かれている
SPFが未設定 or 間違っていると問い合わせメールが「なりすまし」と判定されて届かなくなることがあります。
SPFとは、そのドメインのメールは、どのサーバーから送ってよいか?を証明するもの。
会社メール(独自ドメイン:info@(会社名アルファベット).co.jp など)は特にここで落ちやすいので注意が必要です。
プラグインやテーマの競合
セキュリティプラグインやスパム対策系との組み合わせで送信処理が止まることもあります。
特に下記プラグインが入っている場合は注意:
- reCAPTCHA v3
- Akismetの強い設定
- WAF(サーバー側)
- キャッシュプラグイン
更新後に突然動かなくなるのは、このパターンが多いです。
一度、WordPressのバックアップを取り、セキュリティ・キャッシュ・メール関係(CF7以外)のプラグインを一つずつ無効化して送信テストを行ってみてください。
必殺技!SMTPを設定する
WordPress標準の wp_mail() は不安定になりやすいので、SMTP設定を導入することで改善することが非常に多いです。
SMTP設定をしていない場合、迷惑メールで弾かれる場合がほとんどです。
WordPressでメールフォームを埋め込む場合は初めから設定しておくことを強くおすすめします!
代表的なプラグイン
- WP Mail SMTP
- Post SMTP
SMTP設定は安定する反面、サーバー・メール・DNSの設定が絡むため、ここから先は人によって必要な設定が違います。
SMTP設定方法はこちら→【WordPress】メールが届かない時の最終手段:SMTP設定・手順を解説
何をやっても届かない場合
ここまでやっても届かない、SMTP設定しても届かないという場合は、環境ごと確認した方が早いです。
フォームのメール不達は
- サーバー
- ドメイン
- DNS(SPF)
- セキュリティ設定
- CF7の実装
- テーマ・プラグインの更新状況
など 複数の要因が絡むため、サイトごとに原因が異なります。
「テスト送信はできていたのに、本番の問い合わせだけ届かない」
「ある日から急に届かなくなった」
というケースは、ほぼ環境依存です。
どうしてもやり方がわからない場合は、スクリーンショットや状況をお知らせいただければ、設定や原因の当たりをつけてご案内することも可能です。
チェックポイントを確認し、SMTP設定をすれば多くの場合は解決すると思います。メールが届かないのは致命的なエラーなので、この記事で解決できる事を願っています。
