Contact Form 7 でメールが届かないときは、送信したあとフォームの下に出る表示の枠の色で、原因のある場所が分かれます。送信完了の表示(緑の枠)なのに届かないなら、WordPress はメールを送り出していて、その先で止まっています。送信元(From)のアドレスがサイトと別のドメインになっていないか、そのアドレスが実際にあるか、送信ドメイン認証(SPF・DKIM)が整っているか、迷惑メールのフォルダに入っていないかを見ます。「メッセージの送信に失敗しました」と赤の枠で出るなら、サーバーからの送信そのものが失敗しているので、フォームの設定の誤り、サーバーの送信の記録と上限、SMTP への切り替えの順に見ます。同じ文でもオレンジの枠なら、メールの問題ではなく迷惑メール対策の判定です。
この記事は、Contact Form 7 の公式ドキュメントと FAQ、WordPress の開発者向けリファレンス、Gmail ヘルプ、エックスサーバーの公式マニュアルを、2026年11月14日に確かめた範囲で書いています。フォームの作り方と、届かないときの全体の流れはWordPressのお問い合わせフォーム:作り方と、メールが届かないときの確かめ方に、自動返信の文面は問い合わせの自動返信メールの例文に書いたので、ここでは「届かない」原因を一つずつ掘り下げます。
この記事の結論
- 緑の枠は「WordPress が送り出した」という意味で、「相手が受け取った」という意味ではありません。
- 緑なのに届かないときは、送信元のアドレスと送信ドメイン認証から見ます。送信元は、サイトと同じドメインの、実際にあるアドレスにします。
- 赤の枠は送信の失敗です。フォームの編集画面の設定エラーの注意、サーバーの送信の記録と上限、SMTP への切り替えの順に見ます。
- オレンジの枠は迷惑メール対策の判定です。メールの設定を触る前に、どの対策が止めたかを確かめます。
- 原因を探すあいだの取りこぼしは、Flamingo で送信内容を残して防ぎます。
まず、表示の枠の色で切り分ける
Contact Form 7 の FAQ では、送信後の表示の枠の色に意味があります。赤は、Contact Form 7 が WordPress の送信の仕組み(wp_mail)でメールを送ろうとして失敗したしるしです。オレンジは迷惑メールのしるしで、Akismet、reCAPTCHA、禁止用語リストのどれかが、その送信を疑わしいと判定しています。緑は、メールを送る処理そのものは終わったしるしです。
赤とオレンジは、どちらも「メッセージの送信に失敗しました」という同じ文が出るので、色で見分けます。テーマが見た目を変えていて色が分からないときは、Flamingo を入れていれば、受信メッセージに残る送信の結果(mail_sent、mail_failed、spam)で見分けられます。見方はFlamingoの使い方に書きました。
送信完了(緑の枠)なのに届かないとき
Contact Form 7 の FAQ は、緑の表示が出たなら、メールを送る PHP の処理は確かに完了していて、メールはそのあとで失われた可能性が高く、迷惑メールのフィルタがよくある原因だとしています。WordPress の wp_mail のリファレンスにも、処理が成功しても、相手がメールを受け取ったことを意味しない、と書かれています。次の順に見ます。
1. 送信元(From)がサイトと別のドメインになっていないか
「メール」タブの送信元に、入力した人のアドレス([your-email])や Gmail などのアドレスを入れていると、自社のサーバーから他人のドメインを名乗るメールが出ることになり、なりすましと見なされやすくなります。Contact Form 7 の「メールのセットアップに関するベストプラクティス」は、送信元にはサイトと同じドメインのアドレスを使い、入力した人に返信したいときは「追加ヘッダー」に Reply-To: [your-email] と書くよう勧めています。
Contact Form 7 には、フォームを保存するたびに設定を点検する機能(設定検証)があり、送信元がサイトのドメインでないなどの誤りがあると、編集画面の該当する欄に注意が出ます。点検するのは書き方だけで、テストのメールは送りません。注意が出ていても送信の動きは変わらないので、見落とさないようにします。
2. 送信元のアドレスが実際にあるか
同じベストプラクティスのページは、wordpress@(サイトのドメイン)というアドレスを実際に作っておくよう勧めています。Contact Form 7 の最初のひな形は送信元にこのアドレスを使い、サーバーによっては実在しないアドレスからの送信を止めるからです。WordPress の wp_mail も、送信元の指定がなければ wordpress@ にサイトのホスト名を付けたアドレスを使います。送信元にしているアドレスが、サーバーのメールアカウントとして作ってあるかを確かめます。
3. 送信ドメイン認証(SPF・DKIM・DMARC)
Gmail ヘルプの「メール送信者のガイドライン」は、2024年2月1日以降、Gmail あてに送るすべての送信者に、送信元のドメインへの SPF か DKIM の設定を求めています。1日5,000件以上を送る送信者には、SPF と DKIM の両方と DMARC も求めています。フォームの通知や自動返信も、この対象のメールです。
エックスサーバーの場合、公式マニュアルでは次のとおりです。
- SPF:独自ドメインを追加すると、SPF レコードが自動で追加されます。サーバーパネルの「SPF設定」で、対象のドメインが ON(「標準設定」の表示)になっているかを確かめます。
- DKIM:サーバーパネルの「DKIM設定」で、ドメインごとに OFF から ON に切り替えます。ネームサーバーがエックスサーバーでない場合は、「DKIM設定一覧」の「表示」で出るレコードを、使っているネームサーバーの側に追加します。
- DMARC:サーバーパネルの「DMARC設定」で設定します。マニュアルは、最初はポリシーを「何もしない」にしてレポートを受け取り、認証の状況を確かめてから強いポリシーへ移る、段階的な入れ方を勧めています。
認証が通っているかは、Gmail で受け取ったテストのメールのヘッダーで見られます。見方はお問い合わせフォームの記事の「送信ドメインの認証」の項に書きました。
4. 自社のドメインあてだけ届かない
社外のアドレスには届くのに、サイトと同じドメインのアドレスあてだけ届かないときは、メールは別のサービスで受けているのに、サイトのサーバーにも同じドメインのメールアカウントが残っていて、サーバーの中で配られてしまっていることを疑います(当社の見立て)。エックスサーバーの「外部メールサーバーをお使いいただく場合」のマニュアルは、外部のメールサーバーを使うドメインでは、サーバー上のメールアカウント、メーリングリスト、メールマガジンをすべて削除するよう案内しています。消す前に、そのアカウントに大事なメールが残っていないかを確かめます。
5. 迷惑メールのフォルダと、本文・ヘッダーの中身
受信箱だけでなく、迷惑メールのフォルダを見ます。ベストプラクティスのページは、本文が空や短すぎると迷惑メールに見えやすく、サーバーによっては送信に失敗することもあるとしています。また、任意の入力欄が空で送られたときにも、題名や追加ヘッダーが正しい形のままかを確かめるよう勧めています。たとえば Reply-To に使っている欄が任意だと、空のまま送られたときにヘッダーの値が空になります。
「送信に失敗しました」と赤の枠で出るとき
Contact Form 7 の FAQ は、赤の枠のときは本当の原因を探すこと、メールの設定の誤りがないかを見ること、メールサーバーが止まっている・つながらない場合はサーバー会社に相談してエラーの記録を見てもらうこと、別のメールサーバーに切り替えると直る場合があることを挙げています。次の順に見ます。
- フォームの編集画面を開き、設定エラーの注意が出ていないかを見ます。出ていれば、その欄を直して保存します。
- 送信の量がサーバーの上限に近づいていないかを見ます。エックスサーバーの「メール仕様一覧」では、送信数の目安は1時間あたり1,500通、1日あたり15,000通で、迷惑メールなどの配信があった場合はその範囲内でも制限されることがあるとされています。ふつうの問い合わせで超えることは考えにくいものの、フォームが迷惑な送信に大量に使われ、通知や自動返信が送られ続けている場合は別です(当社の見立て)。
- サーバー会社に、送信のエラーの記録(ログ)を見てもらいます。
- サーバーからの送信が安定しないなら、メールのアカウントにログインして送る SMTP に切り替えます。WordPress では WP Mail SMTP などのプラグインを使います。設定の手順とテストのメールが失敗したときの見方はWP Mail SMTP の設定に書きました。
同じ文でもオレンジの枠のとき
オレンジの枠はメールの送信の問題ではないので、送信元や SMTP を直しても変わりません。Contact Form 7 の FAQ は、どの対策が止めたかをスパムの記録(スパムログ)で調べるよう案内しています。この記録は Contact Form 7 5.1.2 以上と Flamingo 2.0 以上で使え、Flamingo の受信メッセージに理由が残ります。公式の説明の例では、reCAPTCHA のスコア(0.30)がしきい値(0.50)より低い、という理由が記録されています。止めすぎていると分かったら、迷惑メール対策の組み合わせを見直します。対策ごとの特徴と入れる順番はContact Form 7 のスパム対策にまとめました。
原因を探すあいだに、問い合わせを取りこぼさない
Contact Form 7 は送信内容をどこにも保存しないので、通知が届かなければ、その問い合わせはサイトにも残りません。原因を探しているあいだは Flamingo を入れておくと、送信の結果ごとに内容が残り、届かなかった人に連絡を取れます。直したあとは、社内のアドレスと Gmail などの社外のアドレスの両方で、通知と自動返信が届くかを確かめます。
今日、自社で確かめられること
- フォームから一通送り、枠の色を見ます。
- 「メール」タブの送信元が、サイトと同じドメインの実際にあるアドレスかを見ます。返信先は追加ヘッダーの Reply-To にします。
- フォームの編集画面に、設定エラーの注意が出ていないかを見ます。
- サーバーパネルで、SPF と DKIM が ON になっているかを見ます。
- 自社のドメインあてだけ届かないなら、サイトのサーバーに同じドメインのメールアカウントが残っていないかを見ます。
参考にした公式の情報
- Frequently Asked Questions(Contact Form 7)
- Best practice to set up mail(Contact Form 7)
- Configuration Validator FAQ(Contact Form 7)
- Why is this message marked “Spam”?(Contact Form 7)
- wp_mail()(WordPress Developer Resources)
- メール送信者のガイドライン(Gmail ヘルプ)
- メール仕様一覧(エックスサーバー マニュアル)
- SPF設定、DKIM設定、DMARC設定(エックスサーバー マニュアル)
- 外部メールサーバーをお使いいただく場合(エックスサーバー マニュアル)
いずれも2026年11月14日に内容を確かめました。プラグインやサーバーパネルの表示名は、版や言語の設定によって変わることがあります。