技術 約4分で読めます

WordPressで同一ドメイン宛メールが届かない問題の対処法

💥 発生した問題

とあるサイトでContact Form 7からのメールが届かないという相談を受けた。

フォームを送信すると「メッセージの送信に失敗しました」と表示される。WordPressの標準メール(ユーザー登録通知など)は正常に動作しているのに、CF7だけがダメという状況だった。


📝 前提条件

このサイトの構成は以下の通り:

  • Webサーバー: さくらインターネット
  • メール: Google Workspace(以前はさくらのメールを使用)

ポイントは元々さくらのメールを使っていたこと。Google Workspaceに移行した後も、さくらのコントロールパネルではこのドメインが「メール利用可能」な状態のまま残っていた。


🔍 原因の切り分け

1. 最初のエラー:status: 'spam'

ブラウザの開発者ツールで確認すると、CF7のAPIレスポンスが status: 'spam' を返していた。

reCAPTCHA v3がスパム判定しているようだったので、CF7のインテグレーション設定からreCAPTCHAを一旦外してみた。これでスパム判定は解消。

2. 次のエラー:status: 'mail_failed'

reCAPTCHAを外したら今度は status: 'mail_failed' に変わった。メール送信自体が失敗している。

ただし、WordPressの標準メール機能(パスワードリセットなど)は正常に動作する。CF7の設定を見直しても問題なし。

3. 真の原因:同一ドメイン内メール配送問題

送信先を別ドメイン(例:xxx@example.jp)に変えたら正常に届いた。

つまり同一ドメイン宛のメールだけが失敗している。

原因はさくらインターネットのメール設定にあった。さくらのサーバーから xxx@example.com 宛にメールを送ると、外部(Google Workspace)に配送せず、さくら内でローカル配送しようとして失敗する。コンパネでこのドメインが「メール利用可能」になっているためだ。


🤔 根本解決と現実

理屈上はさくらのコンパネでこのドメインのメール機能を無効化すれば解決する。

ただ、今回のケースではコンパネでメールの使用容量を確認したところ、けっこうメールが溜まっていた。転送設定もかかっているようだったが詳細が判別つかず、うかつに切ると何か壊れそうで怖い。

というわけで、メール設定には触れずにWP Mail SMTP by WPFormsで外部SMTP経由で送信する回避策を取った。

「最初からWP Mail SMTP入れとけばいいじゃん」という話もあるが、デフォルトのPHPメールで動くならその方が手っ取り早い。外部SMTPの設定は2段階認証やらアプリパスワードやら手順が地味に多いので、問題が起きてから対応でも遅くはない。


✅ 解決策:WP Mail SMTP by WPForms + Google Workspace

1. Google Workspaceのメールアカウントを用意

送信元として使うメールアドレスを決める。

2. 2段階認証を有効化 → アプリパスワード発行

Googleアカウントのセキュリティ設定から:

  1. 2段階認証を有効化(まだの場合)
  2. アプリパスワードにアクセス
  3. アプリ名は適当に入力(「WordPress」など)
  4. 生成された16文字のパスワードをコピー(スペースは除く)

3. WP Mail SMTP by WPForms設定

WordPressにWP Mail SMTP by WPFormsプラグインをインストールし、以下のように設定:

項目設定値
SMTPホストsmtp.gmail.com
暗号化SSL
SMTPポート465
認証オン
SMTPユーザー名Google Workspaceのメールアドレス
SMTPパスワードアプリパスワード(スペースなし)

4. 送信元メールの設定

送信元メールアドレスもSMTPユーザー名と同じアドレスに設定する。異なるアドレスだと送信に失敗する場合がある。

5. テスト送信

WP Mail SMTP by WPFormsの「ツール → メールテスト」から送信テストを実行。同一ドメイン宛に送信して届けば成功。


💡 まとめ

  • さくらインターネットでGoogle Workspaceにメール移行した場合、コンパネでドメインが「メール利用可能」のままだと同一ドメイン宛メールがローカル配送されて失敗する
  • 根本解決はコンパネでメール機能を無効化することだが、既存のメールや転送設定がある場合は慎重に
  • 回避策としてWP Mail SMTP by WPFormsでGoogle Workspace経由で送信すれば、サーバーのメール設定に触れずに解決できる

さくらでこの構成(Web: さくら、メール: 外部サービス)を使っている場合は割とありがちな問題なので、CF7のメールが届かないときはまずこれを疑ってみるといい。