PR

WordPressのメールが届かない問題この記事で解決できること

日常の事
Gmele

DNS・SMTP・サーバーログから徹底解析した5日間の記録

■ はじめに

WordPress の Contact Form 7 からメールが届かない問題は、
DNS・SMTP・サーバー内部配送・迷惑メール判定など複数の要因が絡むため、
初心者が最もつまずきやすいポイントです。
この記事では、実際に私が 5〜6日かけて解決したプロセスを、
技術的な観点から体系的にまとめ直しました。
同じ問題で悩んでいる方の参考になれば幸いです。
何もできない初心者なのでAIの助言をもとに解決しました。

通常ならこの流れになると思われます。

  • Contact Form 7
  • WordPress
  • WP Mail SMTP
  • SMTPサーバー(CoreServer)
  • 外部メール(Gmail / Yahoo)

今回は、こんな風になりました

  • WordPress
  • SMTP送信(成功)
  • CoreServer内部配送
  • 自分宛メールにループ判定
  • Frozen(配送停止)

1. 問題の症状と前提環境

■ 症状

  • Contact Form 7 の送信は「成功」と表示される
  • しかしメールが届かない
  • WordPress の通知メールも不安定
  • DNS を変更しても反映されない
  • サーバーログに「Frozen」が出る

■ 使用環境

  • CoreServer(V2系)
  • WordPress
  • Contact Form 7
  • WP Mail SMTP
  • 独自ドメイン
  • Roundcube(Webメール)今はgoodのメールボックスで直接読めてます。

2. 原因の切り分け(最初にやるべきこと)

メールが届かない原因は、大きく分けて以下の5つです。

項目内容
DNSA / MX / SPF / DMARC の誤設定
SMTPWordPress → SMTP の送信失敗
サーバー内部配送CoreServer 内でメールが止まる(Frozen)
迷惑メール判定Gmail / Yahoo 側で迷惑メール扱い
メールボックス受信側メールボックスが存在しない

このうち、今回のケースでは 複数の問題が同時に発生していました。

3. DNS設定の問題(最初の大きな壁)

■ Aレコードの誤設定

Aレコードが正しいサーバーIPを向いていないと、
サイトもメールも正常に動作しません。

例(公開用に伏せています):

A @ ***.***.***.***

A www ***.***.***.***

■ MXレコードの誤設定

Google Workspace の MX を貼り付けても保存できない原因は、
CoreServer の「サーバー選択プルダウン」を選んでいなかったこと。

  • 借りているサーバー:v2006
  • DNS保存先:v2002(誤り)

これにより、

  • DNSが反映されない
  • SSLが発行されない
  • メールが届かない

という連鎖が発生していました。

4. SPF・DMARC の誤設定(TXTレコードの重複)

■ SPF

正しい例(伏せています):

v=spf1 ip4:***.***.***.*** include:mxr.valueserver.jp ~all

■ DMARC

誤り(2行に分かれていた):

txt _dmarc v=DMARC1; p=none;

txt _dmarc v=DMARC1; p=none; rua=mailto:postmaster@***

DMARC は 同じホスト名に複数のTXTを置くと無効化されます。

正しい統合例:

txt _dmarc v=DMARC1; p=none; rua=mailto:postmaster@***

5. サーバーログに現れた「Frozen」の正体

CoreServer のメールログに以下のような記録がありました。

lowest numbered MX record points to local host

R=lookuphost defer (-1)

Frozen

これは、

  • WordPress → SMTP までは送信成功
  • CoreServer 内部配送で「自分宛メール」がループ判定され停止
  • そのままキューに残り「Frozen(凍結)」状態

という意味です。

■ Frozen が起きる典型例

  • 送信元=送信先が同じ
  • メールボックスが存在しない
  • 内部配送ルールが不整合
  • DNS反映前の状態で送信した

今回のケースでは、
内部配送(ローカル配送)でループ判定されて止まっていました。

6. Contact Form 7 の設定が原因の一部だった

Contact Form 7 の設定は以下のようになっていました。

送信先(To):自分の独自ドメインメール

送信元(From):独自ドメインメール

この状態だと、

  • WordPress → SMTP → CoreServer
  • CoreServer → 自分宛メール(内部配送)

という流れになり、
内部配送でループ判定 → Frozen が発生しやすくなります。

 7. 決定的な解決策:送信先を Gmail に変更

AI の提案で、Contact Form 7 の送信先を一時的に Gmail に変更。

To:***@gmail.com

From:[サイト名] <***@***.***>

Reply-To:[your-email]

すると、

  • Yahooメールから送信 → Gmailに届く
  • Contact Form 7 → Gmailに届く
  • WordPress通知 → Gmailに届く

つまり、

✅ WordPress → SMTP → Gmail の経路は完全に正常
✅ CoreServer内部配送だけが問題だった

ということが確定しました。

8. 最終的にわかった「根本原因」

今回のメール不達の原因は、以下の複合要因でした。

原因内容
DNS保存先の誤りサーバー選択ミスでDNSが反映されていなかった
DMARCの誤設定TXTレコードが重複して無効化
内部配送のループ自分宛メールがFrozenで停止
迷惑メール判定一部メールが迷惑メール扱い
Contact Form 7 の設定送信先が内部配送になっていた

これらが重なり、
「送信は成功しているのに届かない」
という最も厄介な状態になっていました。

9. 同じ問題で悩んでいる人への実践的アドバイス

まず DNS を確認する

  • A / MX / SPF / DMARC
  • TXT の重複がないか
  • 保存先サーバーが正しいか

② WP Mail SMTP で送信ログを確認

  • WordPress → SMTP が成功しているか
  • 失敗なら SMTP設定を見直す

③ CoreServer のメールログを見る

  • Frozen があるか
  • defer (-1) があるか
  • local delivery が失敗していないか

④ Contact Form 7 の送信先を Gmail に変更してテスト

  • 外部配送が成功すれば、内部配送が原因
  • 内部配送が必要なら CoreServer 側の設定を見直す

迷惑メールフォルダも必ず確認

  • 特に wordpress@ドメイン のメールは迷惑メールに入りやすい

10. まとめ:5〜6日かかったが、確実に理解が深まった

今回のトラブルは、
DNS・SMTP・内部配送・迷惑メール判定・フォーム設定
という複数の要素が絡んだ、典型的な「メール不達の複合トラブル」でした。

しかし、ひとつずつ切り分けていくことで、
最終的に原因を特定し、安定したメール運用ができるようになりました。

同じ問題で悩んでいる方は、
この記事の「切り分け手順」を参考にしていただければ、
必ず解決に近づけるはずです。


最後に

以上の記事はけして一人では解決ができないです。AIがあってこそ解決しました。まだ完全に理解もしていないしもう一度やれと言われてもできない可能性が非常に高です。
全てカット&ペーストしていきながらコツコツと繰り返した結果です。AI様々です。悩み苦しんだ6日でした。

やれやれでした。

Gmale

PCに関する記事を書いてます。よければ、他の記事も読んでください

タイトルとURLをコピーしました