Contact Form 7 で作成したお問い合わせフォームからメールが届かない場合、そのほとんどは設定の見直しやメール配信元の変更で解決できます。
まずはメールが届かない原因を切り分け、その原因に合わせて対処しましょう。
以下、具体的な手順を解説していきます。
即日対応の修正代行サービス
相談・調査は無料です
メールが届かない原因を切り分ける
「メールが届かない」症状は、大きく以下の 2 つに分かれます。
お問い合わせフォーム経由のメールのみ届かない
- Contact Form 7 の設定が間違っている
WordPress から送られてくるメールがすべて届かない
- サーバーの設定が間違っている
- そのサーバー(ドメイン)からのメールがブロックされてしまっている
まずは、上記どちらに該当しているか確認してみましょう。
一般設定の「管理者メールアドレス」を確認する
通常、WordPress から管理者あてに様々なメールが送られてきます。
- 新規ユーザーを追加したとき
- だれかがパスワードをリセットしたとき
- 内部でエラーが起きたとき
- 本体・プラグイン・テーマの自動更新が行われたとき
これらは、一般設定にある「管理者メールアドレス」あてに届きます。自分のメールアドレスになっていなければ再設定してください。

Contact Form 7 を含め、メールフォームプラグインでは送信先の初期値としても使われることがほとんどです。
パスワードリセットで簡易的なテストをしてみる
WordPress からのメールが管理者あてに届いているか、パスワードリセットで試すのが簡単です(実際にパスワードを変更しなくてもかまいません)。
ログイン画面にある「パスワードをお忘れですか?」をクリック。

ユーザー名またはメールアドレスを入力し、「新しいパスワードを取得」をクリック。

以下の件名でメールが届きます。
[サイト名] パスワードのリセット

パスワードを変更しない場合、メール内の URL にアクセスせずそのまま削除して大丈夫です。
これで以下のように切り分けられます。
| メールは届いた? | 対処方法 |
|---|---|
| 届いた | WordPress からのメールは正常に配信されています。 Contact Form 7 の設定を見直しましょう。 |
| 届かない | サーバーの設定が間違っているか、WordPress からのメールがすべてブロックされています。 サーバーや SMTP の設定を見直しましょう。 |
送信元や送信先を任意に設定してテストする場合
送信元・送信先を設定したい場合、functions.php またはカスタマイズ用プラグインに以下のコードを入れます。
送信元のメールアドレスとサイトのドメインは同じものにしておきましょう。
テストが終わったらコードは必ず削除してください。
add_action('init', function() {
if (isset($_GET['mailtest']) && current_user_can('manage_options')) {
$to = '[email protected]'; // 送信先
$from = '[email protected]'; // 送信元
$subject = 'WP Mail Test';
$body = 'テスト送信です。';
add_filter('wp_mail_from', fn() => $from);
add_filter('wp_mail_from_name', fn() => 'Test Sender'); // 送信者名
$result = wp_mail($to, $subject, $body);
wp_die(
$result ? '送信成功' : '送信失敗',
'Mail Test'
);
}
});https://example.com/?mailtest=1 にアクセスして結果を確認します。
これである程度正確に原因を切り分けられます。
| 送信結果 | メール | 原因 |
|---|---|---|
| 送信成功 | 届いた | 問題なし。 Contact Form 7 の設定を見直しましょう。 |
| 届かない | サーバーの設定に問題があります。 | |
| 送信失敗 | 届かない | サーバーの設定や SMTP の設定に問題があります。 |
対処法 1. サーバーの設定を見直す
WordPress からのメールが届いていないなら、サーバーまたは SMTP の設定に問題があります。
DKIM / SPF / DMARC を設定する
「DKIM」と「SPF」は送信メールの改ざんやなりすましを防ぐ技術で、サーバーに設定機能がある場合は必ず ON にしてください。

「DMARC」はメールマガジンを配信しているなら必須ですが、日常の使用においても念のため設定しておいたほうがよいと思います。
サーバーによっては設定の切り替えができないか、機能そのものがないことがあります。
もしかなり古いサーバーを使っているなら、「DKIM」「SPF」「DMARC」が使えるサーバーに乗り換えたほうがよいでしょう。
ビジネス目的での運用なら、エックスサーバーをおすすめします。
WordPress ブログ初心者に「エックスサーバー」をおすすめする理由
SMTP 設定を確認する
もしプラグイン「WP Mail SMTP」を使っているなら、いったん無効化した状態で先ほどのテストを再度行ってください。
瀬尾同プラグインが不要なのに使用しているサイトをよく見かけます
無効化して「送信成功」となれば、プラグインの設定が間違っているということです。そのまま無効化した状態で運用するか、設定を見直しましょう。
Google Workspace や Zoho Mail など外部のメールサービスを使っている場合、設定が少し複雑になります。
とくにサーバーの内部配送(ローカル配信)で問題が起きているケースが多く、ご利用中のサーバーマニュアルに基づいて設定の見直しが必要です。
マニュアル例:
MXレコードを設定したが、メールフォームからメールが届かない – よくあるご質問 – さくらのサポート情報
なかには、Google Workspace や Zoho Mail を使うと sendmail が使えなくなるサーバーもあります。この場合、Google Workspace 等から SMTP 送信する形にしないとメールフォームが機能しません。
対処法 2. Contact Form 7 の設定を見直す
フォームからのメールのみ届かないのであれば、Contact Form 7 の設定に問題があります。
基本的な使い方と検証機能に関する解説は以下の記事をご覧ください。
送信元アドレスを修正する
フォーム編集画面の「メール」では、初期値の送信元が以下の形になっています。
[_site_title] <[email protected]>- _site_title:サイト名に置換される
- example.com:あなたのサイトのドメイン
- [email protected]:WordPress が自動的に作成する架空のメールアドレス

ここで、送信元アドレスが Gmail( @gmail.com ) など他のドメインになっていると、メール到達率は著しく低下します。
「住所が沖縄なのに、消印が北海道になっている」というイメージに近く、毎回住所と消印が異なるため怪しく思われてしまうわけです。
メールが届かない設定例
- セオリコ <example@gmail.com>
問題ない設定例
- セオリコ <[email protected]>
- セオリコ <[email protected]>
Contact Form 7 でも「設定エラー」と表示されるので、一度確認してみてください。長年使用しているとエラーに気づかない可能性があります。

初期値のままにしておくか、サイトの独自ドメインで作成したメールアドレスを設定しておきましょう。
送信元は、サーバーで設定していない架空のメールアドレスでも問題ありません。
自動返信で使われる「メール (2)」の設定も同様です。
自動返信する場合はスパム対策を厳重にする
「メール (2)」を使うと自動返信できますが、よほどの理由がないかぎり使用はおすすめしません。

たとえ相手がスパマーでも自動返信するので、以下のリスクが生じます。
- スパマーに管理者のメールアドレスがバレてしまう
- スパムで大量の問い合わせがきたとき、そのすべてに返信する形になる
スパマーが何百回と問い合わせフォームからメールを送ってきたとき、そのすべてに自動返信すると「ランダムな迷惑メールを大量に送っているサイト」と認識されるかもしれません。
もし自動返信を使うのであれば、Akismet に加え Cloudflare Turnstile なども設定してスパム対策をきっちり行ってください。
スパマーがメールを送れないようにしておけば、こちらから怪しいアドレスにメールを送ることもなくなります。
瀬尾自動返信を使わない場合も、スパム対策は必須です
カスタマイズを見直す
以下のような Contact Form 7 のカスタマイズをしているなら、そこが送信失敗の原因になっているかもしれません。
- 他のプラグインを使って確認画面を表示している
- 特定の IP をブロックしている
- 「日本語が含まれていない」などのバリデーションを追加している
Contact Form 7 の古いバージョンに合わせたカスタマイズコードは、最新版で正常に動作しない可能性があります。
関連プラグインを停止、またはカスタマイズコードを無効にして再検証してみてください。
対処法 3. 外部サービスに変更する
サーバー設定や Contact Form 7 の見直しが難しく、かつ今すぐ修正が必要であれば外部サービスの利用をおすすめします。
Gmail をメインに使っているなら、Google Forms がおすすめです。
Google Forms を埋め込む手順
「名前」や「メールアドレス」などの必要なパーツを配置し、右上の「送信」をクリック。

を選択し、出てきたコードをコピーします。

「カスタム HTML」ブロックにコードを貼り付け。

プレビューで確認して完了です。

Google Forms を利用すればほぼ確実に届きますし、スパム対策も Google 側がやってくれるので安心です。
その他サービス
固定ページに埋め込まず、外部サービスにリンクして使用できるサービスもあります。
いったんフォームを差し替えておいて、その間にサーバーや Contact Form 7 の設定見直しを行う、というのもよいですね。
デザインとの兼ね合いもありますが、選択すべきは「きれいで届かないフォーム」ではなく「デザインに違和感があっても確実に届くフォーム」です。
メールが届いているか検証できるプラグイン
以下のプラグインを入れておくと、Contact Form 7 からのお問い合わせや WordPress からのメールが届いているか検証できます。
- Flamingo
- WP Mail Logging
万が一ハッキングにより不正侵入されてしまうと、問い合わせ送信元のメールアドレス等が漏洩するリスクがあります。一定期間テストして問題なく届くことを確認したら、プラグインの削除をおすすめします。
Flamingo
「Flamingo」は、Contact Form 7 経由のメールのみ記録してくれるプラグイン。
WordPress の管理メールなどは記録されないので、本来は「お問い合わせを管理画面で確認したい」という目的で使うものです。担当者が複数人いるときは便利ですね。
手元に届くメールと照らし合わせ、Contact Form 7 からのメールが届いているかの検証にも使えます。

WP Mail Logging
「WP Mail Logging」は、WordPress からのメールをすべて記録してくれるプラグイン。
Contact Form 7 経由のお問い合わせも記録してくれるので、検証したいならこのプラグインを入れておけば十分です。
自動返信が正常に送られているかもチェックできます。

まとめ
メールが届かない原因は複数ありますので、「フォームのメールのみ届かない」のか「WordPress からのメールがすべて届かないのか」を切り分けて対処しましょう。
今までご相談いただいた解決事例
- サーバーで SPF や DKIM が設定されていなかった
- サイトのドメインと送信元メールアドレスのドメインが一致していなかった
- SMTP 設定が間違っていた(とくに Google Workspace 利用時)
どうしても解決が難しい場合、お気軽にご相談ください。
即日対応の修正代行サービス
相談・調査は無料です


