Contact Form 7でメールが届かないときに確認すること
WordPressの問い合わせフォーム「Contact Form 7」で、送信は完了するのにメールが届かない。原因はフォームだけとは限らず、受信側やDNS、サーバーの設定にまたがります。闇雲に設定を変えず、まず「どこまで届いているか」から順番に切り分けましょう。
この記事で分かること
- メールが届かない原因の切り分け方
- 自分で確認できる範囲と、触らないほうがよい範囲の線引き
- 直らないときに相談するための準備
よくある症状
まず、どちらの症状かで原因の見当が変わります。
- 「送信ありがとうございました」と出るのに届かない:フォーム自体は動いていて、メールの「配信」でつまずいている可能性が高い
- 「送信に失敗しました」と赤いエラーが出る:メールの送信処理そのもので止まっている
前者のほうが多く、原因も分かりにくいパターンです。
原因候補
メールが届かない原因は、おおむね次のどれかに当てはまります。
- 送信元アドレスがサーバーのドメインと一致していない
Contact Form 7の初期設定では、送信元がwordpress@あなたのドメインになります。これがサーバーの実際の送信ドメインと食い違うと、受信側に「なりすまし」と判定され、迷惑メール行きや受信拒否になります。最も多い原因です。 - SPF・DKIMなどの認証設定が未整備
ドメインの正当性を示すレコードが設定されていないと、GmailやOutlook側でスパム判定されやすくなります。 - WordPress標準のメール送信が不安定
WordPressは標準だとwp_mail(PHPのmail関数)でメールを送ります。サーバーによっては、ここが届きにくい・詰まりやすい仕組みです。 - 送信先アドレスの設定ミス
Contact Form 7の「メール」タブの送信先が、受け取れないアドレスや打ち間違いになっている。 - 届いているが迷惑メールフォルダに入っている
送信元の問題で、迷惑メール扱いされているだけのこともあります。 - スパムフィルタが送信自体をブロック
reCAPTCHAやAkismetが、正規の送信まで止めているケース。
確認手順
上から順に確認すると、無駄な設定変更を避けられます。
- 迷惑メールフォルダを確認する
まず受信側の迷惑メールフォルダを見ます。ここにあれば「届いてはいる」ので、原因は送信元・認証の問題に絞れます。 - 送信先アドレスを確認する
Contact Form 7の「メール」タブを開き、「送信先」が正しいアドレスかを確認します。打ち間違いや、使っていないアドレスになっていないかを見ます。 - 送信元アドレスを確認する
同じ「メール」タブの「送信元」を見ます。お名前 <wordpress@ドメイン>のように、自分のサイトのドメインのアドレスになっているかを確認します。フリーメール(gmail.comなど)を送信元にしていると、受信側で「なりすまし」と判定され、届きにくくなることがあります。

- テスト送信をして挙動を見る
フォームから自分で送信し、「完了表示が出るか」「エラーが出るか」を確認します。ここまでの結果で、フォーム側の問題かメール配信側の問題かが切り分けられます。 - SMTP送信に切り替える(中級者向け)
標準のメール送信が原因なら、SMTP送信プラグインを使い、メールサーバー経由で確実に送る方法があります。ここはサーバーやメールアカウントの設定知識が必要なので、不安なら触らないでください。
自分で触る前の注意点
- 設定を変える前に、現在の設定をメモかスクリーンショットで残す。 元に戻せる状態を必ず作ってから変更します。
- DNS(SPF・DKIM)の設定は、間違えるとメール全体が届かなくなることがあります。自信がなければ触らないでください。
- プラグインの追加・更新は、可能ならバックアップを取ってから行います。
こうした不具合は、ふだんの点検で起きにくくできます。あわせてWebサイトで最低限やっておきたい保守チェックもご覧ください。
相談するときに用意するとよい情報
直らないとき、次の情報があると原因の特定が早くなります。
- 対象サイトのURL
- 症状(「完了表示は出るが届かない」/「エラーが出る」のどちらか)
- いつから発生しているか、直前に行った変更(プラグイン更新・サーバー移転など)
- 受信できていないメールアドレスの種類(独自ドメイン / Gmail など)
- Contact Form 7の「メール」タブのスクリーンショット(送信先・送信元が分かるもの)
対応できるか相談する
迷惑メールにも入っていない、送信元も直したのに届かない──そうなると、サーバーのメール設定やDNSの確認が必要で、切り分けに知識がいります。
現役のWebエンジニアとして、フォーム不達の原因調査から対応しています。最初は、対象サイトのURL・症状・スクリーンショット(あれば)の3点だけで大丈夫です。その他は分かる範囲で構いません。