
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つです。
| 項目 | 内容 |
| DNS | A / MX / SPF / DMARC の誤設定 |
| SMTP | WordPress → 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日でした。
やれやれでした。

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