WordPressのお問い合わせフォームからのメールが届かない!を解決する完全ガイド

フォームからのメールが届かない! SOSブログ
この記事の監修者・著者

Web制作歴29年。Webプロデューサー、Webマーケター、Webディレクター、Webデザイナー、Webエンジニアなど、様々なポジションでWeb制作に携わってきました。

主宰するホームページ作成教室には全国から受講生が集まっています。

このたび、Webトラブル何でも相談窓口を開設しました。
Webサイトのトラブル解決をサポートします!

コナン先生(小南邦雄)をフォローする

はじめに:仕組みの理解から、絶対に届けるための設定手順まで

「お問い合わせフォームからテスト送信してみたけれど、メールが届かない…」

「お客様から『返信がない』とクレームが来て初めて不具合に気づいた…」

WordPressでサイトを運営していると、必ずと言っていいほどこのトラブルに直面します。これは単なる不具合ではなく、ビジネスのチャンスを逃してしまう緊急事態ですよね。

でも、安心してください。この現象には必ず「明確な理由」があります。そして、正しい手順を踏めば確実に解決できます。

この記事では、なぜメールが届かなくなるのかという根本的な仕組みから、初心者の方でも迷わずに設定できる解決手順まで、専門用語をわかりやすく解説しながら徹底的にガイドします。

少し長いですが、この記事の通りに進めれば、あなたのサイトのメールは確実に届くようになります。

コナン
コナン

一人でトラブルに向き合うのは不安…これ以上触ると取り返しがつかなくなりそうで怖い…一緒にトラブルを解決してほしい!プロに任せたい!という方は、下記よりご連絡ください。
コナン先生のWebトラブル何でも相談窓口

1.なぜ、WordPressの「メールが届かない」トラブルはこれほど多いのか?

1.WordPressのメール送信の仕組み

WordPressは、インストール直後の状態だと「PHPメール」という仕組みを使ってメールを送ります。

これを現実世界の手紙に例えると、「差出人の住所も書かず、身分証明もせず、ポストに放り込んだだけのハガキ」のようなものです。

Webサーバー(ホームページを表示するコンピュータ)は、ページを表示するのは得意ですが、メールを届ける専門家ではありません。そのため、この「PHPメール」で送られたメールは、受け取る側(Gmailなど)からすると、「どこの誰が送ってきたのか怪しい…もしかして詐欺メール?」と疑われやすいのです。

2.「届かない」には3つのパターンがある

「届かない」と一言で言っても、実は原因が潜んでいる場所は3つに分かれます。

場所具体的に何が起きている?
① WordPressの中宛先の入力ミスや、プラグイン同士のケンカなど、出発前のトラブル。
② サーバーの出口サーバー会社が「メールを送りすぎです」と止めたり、セキュリティ機能が邪魔をしている状態。
③ 相手のポストGmailなどの受信側が「このメールは怪しいから受け取り拒否!」とブロックしている状態。

最近のトラブルの9割は、③の「相手側(特にGmail)に拒否されている」 パターンです。ここをどう突破するかが、今回の最大のテーマになります。

2.Gmailに届かない問題と「なりすまし」の正体

「以前は届いていたのに、2024年に入ってから急に届かなくなった」という声をよく聞きます。これは、Google(Gmail)やYahoo!がセキュリティのルールを劇的に厳しくしたからです。

1.2024年の新ルール「身分証を見せてください」

Googleは現在、「送信者の身元がはっきりしないメールは、容赦なくブロックするか迷惑メールフォルダに入れます」というルールを適用しています。これをクリアするために必要なのが、「送信ドメイン認証」という3つの技術です。

名前は難しいですが、役割はシンプルです。

  • SPF(エスピーエフ)
    役割:「名簿」です。「このサーバー(IPアドレス)は、私の名前でメールを送っていいですよ」とあらかじめ宣言しておくリストのことです。
  • DKIM(ディーキム)
    役割:「封蝋」や「ハンコ」です。
    メールに電子的な印鑑を押し、「このメールは途中で中身を書き換えられていませんよ」と証明します。
  • DMARC(ディーマーク)
    役割:「指示書」です。
    「もしSPFやDKIMのチェックに落ちたメールが来たら、捨ててください(または報告してください)」と、受信側に指示を出します。

これらが設定されていないと、あなたのメールは「身元不明の怪しいメール」として扱われてしまいます。

2.絶対にやってはいけない「なりすまし設定」

ここが一番の重要ポイントです!

お問い合わせフォーム(Contact Form 7など)の設定で、送信元(From)に「お客様のメールアドレス」を設定していませんか?

間違った設定

  • 送信元(From)
    [your-email] (お問い合わせしてくれた人のアドレス:Gmailとする)
  • あなたのサーバー
    エックスサーバー

これをしてしまうと、メールのデータ上は「Gmail(お客様のアドレス)から送られてきた」ことになっているのに、実際に送っている場所は「エックスサーバー」ということになります。

Googleから見れば、「エックスサーバーのくせに、Gmailのふりをしてメールを送ってきている! これは『なりすまし(詐欺)』だ!」と判断され、即座にブロックされます。

正しい設定

  • 送信元(From)
    必ずあなたのサイトのドメインのメール(例: info@myshop.com)にする。
  • 返信先(Reply-To)
    ここにお客様のアドレス [your-email] を設定する。

こうすれば、あなたのサーバーからあなたのドメイン名義で送ることになるので、正規のメールとして扱われます。「返信ボタン」を押したときは、ちゃんとお客様のアドレス宛になるので不便はありません。

3.まずは診断! 原因を特定しよう

対策を始める前に、「どこで止まっているのか」を確認しましょう。WordPressの管理画面だけでは、「送ったつもり」になっているのか「送るのに失敗した」のか分かりません。

1.「WP Mail Logging」を入れる

メールの送信記録(ログ)を取ってくれるプラグインを入れましょう。

  • プラグインの新規追加で「WP Mail Logging」を検索してインストール・有効化します。
  • 自分のお問い合わせフォームからテスト送信してみます。
  • 管理画面の「WP Mail Logging」→「メールログ」を見ます。

2.ログの結果で対策を決める

  • パターンA
    ログに「エラー(Error)」と出ている

    WordPressが送信しようとしたけれど、サーバーの入り口で弾かれています。
    4.SMTP設定や、6.サーバー設定を確認しましょう。
  • パターンB
    ログは「成功(Success)」なのに届かない

    これが一番厄介です。WordPressは「送信完了!」と言っていますが、その後のインターネットのどこか、あるいは受信者の迷惑メールフィルタで消されています。
    4.SMTP導入(必須)と7.DNS設定を行いましょう。

4.これが解決の王道!「SMTP」を導入しよう

「PHPメール」は信頼性が低いので、「SMTP」を使ってメールを送るようにWordPressを改造します。これで、信頼できる正規のメールサーバーを経由して送れるようになります。

プラグインは「WP Mail SMTP」一択

いろいろなプラグインがありますが、世界中で使われていて設定もわかりやすい「WP Mail SMTP」を使いましょう。

プラグイン「WP Mail SMTP」を追加して、有効化します。

設定パターン①:レンタルサーバーのメールを使う(簡単・無料)

エックスサーバーやConoHaなど、自分が契約しているサーバーのメール機能を使う方法です。

準備するもの

サーバーの管理画面で以下の情報をメモしてください。

  • SMTPホスト名(例: sv1234.xserver.jp
  • SMTPポート番号(通常は 465 または 587
  • メールアドレスとパスワード(あなたのメールアカウント)

設定手順

  • WordPress管理画面の「WP Mail SMTP」→「設定」を開きます。
  • 「メーラー」の項目で「その他のSMTP」を選びます。
  • SMTPホスト:
    メモしたホスト名を入力します。
  • 暗号化:
    エックスサーバーなど多くの国内サーバーは「SSL」を選びます(ポートが自動で 465 になります)。もしうまくいかない場合は「TLS」を選びます(ポートは 587)。
  • 認証:
    スイッチを「ON」にします。
  • SMTPユーザー名:
    あなたのメールアドレスを入力します。
  • SMTPパスワード:
    メールのパスワードを入力します。
  • 送信元アドレス:
    SMTPユーザー名と同じメールアドレスを入力し、「このメールアドレスを強制使用」をONにします。
  • 設定を保存し、「ツール」タブからテストメールを送ってみてください。「成功」と出れば完了です!

設定パターン②:Gmail APIを使う(最強の到達率)

「自分のサーバーから送ってもまだ迷惑メールに入る…」という場合は、Googleの公式ルート(API)を使って送る方法が最強です。少し設定が長いですが、頑張りましょう!

なぜ普通のGmail設定じゃダメなの?

パスワードを入れるだけの簡単な設定だと、Googleのセキュリティに引っかかってすぐに送れなくなります。「API」という専用の鍵を使うことで、安全かつ確実に送れるようになります。

設定手順:Google Cloudでの操作

  • プロジェクトを作る
    Google Cloud Console にアクセスし、「プロジェクトの作成」をクリック。
    適当な名前(例: My WordPress Mail)をつけて作成します。
  • APIを有効にする
    メニューの「APIとサービス」→「ライブラリ」へ。
    「Gmail API」を検索して、「有効にする」をクリックします。
  • 同意画面を作る
    「APIとサービス」→「OAuth同意画面」へ。
    User Typeは「外部」を選んで作成。
    アプリ名は適当に、メールアドレスは自分のものを入力して保存。
    重要:「テストユーザー」のところで、送信に使うGmailアドレスを追加してください(これを忘れるとエラーになります)。
  • 鍵(認証情報)を作る
    「認証情報」→「認証情報を作成」→「OAuthクライアントID」へ。
    アプリケーションの種類は「ウェブアプリケーション」。
    承認済みのリダイレクトURI:ここに、WordPressの「WP Mail SMTP」の設定画面(Googleを選んだ状態)の下の方に表示されているURL(https://connect.wpmailsmtp.com/...)をコピペします。
    作成すると「クライアントID」と「シークレット」が表示されるのでコピーします。
  • WordPressと連携
    WP Mail SMTPの画面に戻り、コピーしたIDとシークレットを貼り付けます。
    「プラグインがGoogleアカウントを使用して~」ボタンを押し、Google認証を許可すれば完了です!

5.フォームプラグイン別の注意点とトラブル解決

SMTPの設定は完璧でも、フォームプラグイン側のちょっとした設定ミスで動かないことがあります。人気の3大プラグインについて解説します。

「Contact Form 7 (CF7)」の場合

①送信元アドレスのミス

繰り返しになりますが、メールタブの「送信元」に [your-email] を入れるのは絶対にNGです。必ず info@あなたのドメインなど、あなたのドメインのメールアドレスに書き換え、「追加ヘッダー」の欄に Reply-To: [your-email] と書きましょう。

②スパム判定の誤解(reCAPTCHA)

「送信ボタンを押すと、くるくる回ってオレンジ色の枠が出る」

これは、Google reCAPTCHA(スパム対策)が、あなた(またはお客様)をロボットだと誤解してブロックしている状態です。

対策:
「Flamingo」というプラグインを入れてください。これを入れると、もしメール送信に失敗しても、データが管理画面に残るようになります。

「MW WP Form」の場合

①「確認画面」のループ問題

「確認ボタンを押しても、また入力画面に戻ってしまう」

これは、キャッシュ機能(ページの表示を速くする機能)が悪さをしています。

対策:
キャッシュプラグイン(WP Super Cacheなど)や、サーバー側のキャッシュ設定で、お問い合わせページのURL(例: /contact/)を「除外」してください。

②データベース保存を忘れずに

MW WP Formの良いところは、メールが届かなくても管理画面にデータを残せることです。

チェック:
フォーム編集画面の右側にある「問い合わせデータをデータベースに保存」にチェックが入っているか、必ず確認しましょう。

「Snow Monkey Forms」の場合

①送信ボタンが押せない

サイトを高速化するプラグイン(Autoptimizeなど)を使っていると、フォームを動かすプログラム(JavaScript)が壊れることがあります。

対策:
高速化プラグインを一時停止して直るか確認してみましょう。

②管理者メールの設定

ブロックの設定画面で「管理者宛メール」の送信先が空欄だと、WordPressの「設定>一般」にあるアドレスに送られます。ここが個人のGmailになっていると、なりすまし判定されやすいです。ここも明示的にドメインのメールアドレスを入力しましょう。

6.サーバー会社ごとの「落とし穴」

日本国内の主要なサーバーには、独自のセキュリティ機能があります。これが原因でメールが止まることも多いです。

エックスサーバー(Xserver)の注意点

SMTP認証の国外アクセス制限

  • もしGoogle WorkspaceやSendGridなど、海外のサーバーを経由してメールを送る設定にした場合、エックスサーバーが「海外からの接続だ!怪しい!」とブロックしてしまいます。
  • 対策:サーバーパネルの「SMTP認証の国外アクセス制限」を「OFF」にしてください。

WAF(ウェブアプリケーションファイアウォール)

  • お問い合わせ内容に「英語の文章」や「プログラムっぽい記号」が含まれていると、攻撃と勘違いしてブロックすることがあります。
  • 対策:エラーが出た時刻のWAFログを確認し、誤検知であれば除外設定をします。

さくらのレンタルサーバの注意点

Webフォント機能との相性

稀なケースですが、さくらサーバー特有のWebフォント機能がフォームの動きを邪魔することがあります。もしどうしても動かない場合は、プラグイン設定でWebフォントをOFFにして試してみてください。

Amazon EC2 / VPS / クラウド環境の場合

ポート25番ブロック(OP25B)

  • AWSなどのクラウドサーバーは、スパム送信を防ぐために、標準的なメール送信ルート(ポート25)を完全に塞いでいます。
  • 対策:サーバーから直接送ろうとせず、必ずSendGridやAmazon SESなどの外部メール配信サービスを契約し、WP Mail SMTPで連携させてください。

7.仕上げ! DNS設定で「信頼」を勝ち取る

SMTPで「送れる」ようになっても、「迷惑メールに入る」問題が残る場合は、最後の仕上げが必要です。サーバーのコントロールパネルで「DNS設定」を行います。

SPFレコード(許可リスト)

「このサーバーから送りますよ」という宣言です。

エックスサーバーなどでは最初から設定されていますが、Google Workspaceなどを併用する場合は書き足す必要があります。

記述例v=spf1 +a:sv1234.xserver.jp include:_spf.google.com ~all

このように、1行にまとめて書くのがルールです。

DKIM(電子署名)

最近はワンクリックで設定できるようになりました。

エックスサーバー/ConoHa/さくら

  • サーバーパネルの「メール設定」>「DKIM設定」へ行きます。
  • 対象のドメインを選んで「設定する(有効にする)」ボタンを押すだけ。
  • これだけで、Gmailからの信頼度が劇的にアップします。絶対にやっておきましょう。

DMARC(運用ルール)

「もし認証に失敗したらどうするか」を決める設定です。DNSの「TXTレコード」に追加します。

  • ホスト名_dmarc
  • 内容v=DMARC1; p=none;

まずは p=none(何もしないで見守る)で設定しておけばOKです。これがあるだけで、Googleに対して「私はメールセキュリティを気にしていますよ」というアピールになり、届きやすくなります。

結論:あなたのやるべきことリスト

長くなってしまいましたが、最後にやるべきことをレベル別にまとめました。

【初級編】まずはここから!

  • WP Mail SMTPプラグインを入れ、エックスサーバー等の情報を設定してテスト送信を成功させる。
  • フォームの設定で、送信元(From) を自分のドメインのメールアドレスにする。
  • Flamingo プラグインを入れて、メールが消えてもデータが残るようにする。

【中級・上級編】完璧を目指すなら!

  • サーバーパネルで DKIM を有効にする。
  • DNS設定で DMARC (p=none) を追加する。
  • それでもダメなら、Gmail API連携やSendGridの導入に挑戦する。

メールの設定は目に見えない部分なので難しく感じますが、一つひとつクリアしていけば必ず解決します。

このガイドを参考に、あなたの大切なお問い合わせメールをしっかり守ってくださいね!