Contact Form 7 のメールが送信されない
プラグインの設定より先に、ドメインのメール設定を疑ってください。CF7 の画面で完結する問題は、実はそれほど多くありません。
考えられる原因
差出人(From)を、問い合わせてきた人のアドレスにしている
CF7 の既定では、送信者メールに [your-email] を入れる書き方が広まっています。これは他人のドメインを名乗ることになり、SPF も DMARC も通りません。差出人は自社のドメインのアドレスにして、返信先(Reply-To)に [your-email] を入れてください。これだけで直る例が一番多いです。
送信ドメインの認証(SPF / DKIM)が無い
Gmail と Yahoo! は、認証のないメールを受け取りません。レンタルサーバーの標準の送信をそのまま使っていると、ここが抜けていることがよくあります。CF7 側をどう設定しても、この条件は満たせません。
サーバーの送信そのものが止まっている
共有サーバーには、1時間あたりの送信数の上限や、PHP の mail() の制限があります。迷惑メールの踏み台にされた形跡があると、契約単位で送信が止められていることもあります。管理画面の送信ログを確認してください。
「メッセージの送信に失敗しました」は、送る前で落ちている
この文言はサーバーがメールを渡せなかったときに出ます。届かないのではなく、出ていません。SMTP プラグインを入れている場合は、その認証情報(ポート・パスワード)が期限切れになっていないかを見てください。
直し方
WordPress の中で直す
差出人を自社ドメインに直し、SMTP プラグインで認証済みの送信サービスに繋ぎ、そのサービスでドメインを認証(DNSにレコードを追加)します。正攻法ですが、プラグイン・サーバー・DNS の3か所を触ることになります。
フォームの送信先だけ差し替える
CF7 のフォームはそのまま、送信先(action)を書き換えるだけでも受け取れます。HTMLも項目も見た目も変わりません。以降のメールは認証済みの基盤から出るので、あなたのDNSもサーバーも触りません。
無料で試す送信先の書き換えだけなら、プラグインの追加も、サーバーの設定変更も要りません。届いた問い合わせは分類され、返信の下書きまで用意されます。
<script src="https://nintact.com/embed.js"
data-nintact="YOUR_FORM_ID" async></script>よくある質問
SMTPプラグインを入れれば直りますか?
送信の経路は直りますが、それだけでは足りないことがあります。繋いだ先のサービスで自分のドメインを認証(SPF・DKIM のレコードを公開)しないと、受け取る側では認証のないメールのままです。
差出人を自分のアドレスにすると、誰から来たか分からなくなりませんか?
なりません。返信先(Reply-To)に問い合わせた人のアドレスを入れておけば、返信ボタンでそのままその人に返せます。一覧の表示名も、本文に名前を入れておけば分かります。
CF7 のフォームを作り直す必要はありますか?
ありません。送信先を書き換えるだけなら、いまのフォームがそのまま動きます。作り直したい場合は、コード1行で描画する形にも切り替えられます。
自分のドメインが今どういう状態か、どこで分かりますか?
到達チェックにドメインを入れると、SPF・DKIM・DMARC・MX を実際に引いて診断します。登録は不要です。