CreaTools LogoCreaTools
Tips

お問い合わせフォームが届かない原因の特定方法

2026-01-12

この記事が解決する状況

あなたの状況読むべきセクション
フォーム送信完了になるが届かない原因の切り分け → 確認の順序
迷惑メールに入る確認4: SPF/DKIM設定
特定の相手にだけ届かない確認4: SPF/DKIM設定
Xserver / さくら / ConoHaを使っているホスティング別の注意点
SMTPプラグインを入れたが動かないトラブルシューティング

「送信完了」はフォームの処理が終わっただけ。メールが届いた保証ではない。


よくある失敗

「Contact Form 7で送信完了になるのに、メールが届かない」

フォーム側は正常。でもメールがどこかで消えている。原因は複数あり、順番に潰さないと特定できない。


原因の切り分け

症状最も多い原因
全く届かないサーバーのメール送信機能が無効
迷惑メールに入るSPF/DKIM未設定
特定ドメインだけ届かない受信側のフィルタ
時々届かないサーバーの送信制限

確認の順序

1. 迷惑メールフォルダを確認
2. 送信元アドレスを確認
3. サーバーのメール機能を確認
4. SPF/DKIMを確認
5. SMTPプラグインを検討

上から順に確認。1で解決すれば2以降は不要。


確認1: 迷惑メールフォルダ

最初に確認。意外とここで解決する。

Gmailの場合「すべてのメール」も確認。自動振り分けで見えない場所に入っていることがある。


確認2: 送信元アドレスの設定

よくある間違い

設定問題
送信元が wordpress@サーバードメイン受信側で不審なメールと判定
送信元と返信先が別ドメインスパム判定されやすい
存在しないアドレスを送信元に認証に失敗する

Contact Form 7の場合

「メール」タブで確認:

送信元: info@example.com  ← 実在するアドレス
送信先: admin@example.com

送信元はサイトと同じドメインの実在するアドレスにする。


確認3: サーバーのメール機能

共有サーバーではPHPのmail()関数が制限されていることがある。

確認方法

<?php
$result = mail('your@email.com', 'テスト', '本文');
var_dump($result); // false なら送信機能が無効

falseが返る場合、サーバー会社に確認するか、SMTPプラグインで外部送信に切り替える。


確認4: SPF/DKIM設定

メール認証が未設定だと、受信サーバーに拒否される。

メール認証の仕組み

送信サーバー → 受信サーバー
                   ↓
              「このメール、本当にexample.comから?」
                   ↓
              DNSのSPFレコードを確認
                   ↓
              許可されたサーバーからなら受信、そうでなければ拒否/迷惑メール

SPF・DKIM・DMARCの違い

認証方式役割設定場所
SPF送信元サーバーの正当性を証明DNS TXTレコード
DKIMメールに電子署名を付与DNS TXTレコード + メールサーバー
DMARCSPF/DKIMの結果をどう扱うかのポリシーDNS TXTレコード

最低限SPFは設定する。 DKIMも設定するとより到達率が上がる。

SPFの確認

nslookup -type=txt example.com

以下のようなレコードがあればOK:

"v=spf1 include:_spf.google.com ~all"

ホスティング別の注意点

Xserver

項目設定
SPFレコードv=spf1 include:spf.xserver.jp ~all
メール送信PHPのmail()は使用可能
送信制限1時間あたり500通(共有サーバー)
DKIMサーバーパネル → メール設定 → DKIM設定
注意点ドメイン追加時にメール認証を有効化

さくらサーバー

項目設定
SPFレコードv=spf1 include:sakura.ne.jp ~all
メール送信PHPのmail()は使用可能
送信制限明確な上限なし(大量送信は制限)
DKIMコントロールパネル → ドメイン設定
注意点ドメイン設定でメール利用をONにする

ConoHa WING

項目設定
SPFレコードv=spf1 include:spf.conoha.jp ~all
メール送信PHPのmail()は使用可能
送信制限1時間あたり1000通
DKIMコントロールパネル → メール管理 → メールセキュリティ
注意点DKIM設定が初期状態でOFFの場合あり

ロリポップ

項目設定
SPFレコードv=spf1 include:_spf.lolipop.jp ~all
メール送信PHPのmail()は使用可能
送信制限プランにより異なる(ライト:100通/時)
DKIM自動設定(2023年以降のアカウント)
注意点他社と比べて迷惑メール判定されやすい傾向

対処: SMTPプラグインで外部送信

サーバーのメール機能に頼らず、GmailやSendGridなど外部サービス経由で送信する。

プラグイン比較

プラグイン特徴おすすめ用途
WP Mail SMTP定番、設定ウィザードあり初心者、確実に動かしたい
FluentSMTP無料で複数接続対応複数サービス使い分け
Post SMTP送信ログが見やすいトラブルシュート重視

Gmail SMTP設定例(WP Mail SMTP)

  1. Googleアカウントで「アプリパスワード」を生成
  2. WP Mail SMTPで以下を設定:
項目
SMTPホストsmtp.gmail.com
ポート587
暗号化TLS
認証ON
ユーザー名your@gmail.com
パスワードアプリパスワード

SMTP導入後の副作用

副作用対策
送信元がGmailアドレスになる独自ドメインで送りたいならGoogle Workspace or 別サービス
Googleの送信制限に引っかかる1日500通制限。大量送信ならSendGrid等
プラグイン無効化でメール停止本番では安易に無効化しない
アプリパスワード漏洩リスクwp-config.phpに定数で定義、DBに保存しない

送信ログの確認

メールが送信されたか、どこで失敗したかを記録する。

Post SMTPの場合

ダッシュボード → Post SMTP → メールログ

ステータス意味
Sent送信成功
Failed送信失敗(エラー内容を確認)

ログがなければ、そもそもフォームからメール送信処理が呼ばれていない。


判断フローチャート

メールが届かない
    ↓
迷惑メールフォルダにある? → Yes → SPF/DKIM設定を確認
    ↓ No
送信ログは記録されている?
    ↓ No → フォームプラグインの設定を確認
    ↓ Yes
ログのステータスは?
    ↓
Sent → 受信側の問題(SPF/DKIM、受信フィルタ)
Failed → エラー内容を確認(認証失敗、タイムアウト等)

トラブルシューティング

症状原因対処
ログに「認証失敗」SMTP認証情報が間違いユーザー名・パスワード再確認
ログに「接続タイムアウト」ポートがブロック587 → 465に変更、またはサーバー確認
送信成功なのに届かない受信側で拒否SPF/DKIM設定、送信元アドレス見直し
1日に数通しか届かないサーバーの送信制限外部SMTPに切り替え
特定ドメインだけ届かない受信側の企業フィルタ相手のIT担当に確認依頼

まとめ

  • 迷惑メールフォルダを最初に確認
  • 送信元アドレスはサイトと同じドメインの実在アドレス
  • SPF未設定だと受信側で拒否される
  • サーバーのmail()が使えないならSMTPプラグイン
  • 送信ログで「送信されたか」を確認できる状態にしておく
  • ホスティングごとに送信制限とDKIM設定方法が違う

関連記事