「フォームが送信できた」と「受信箱へ届いた」は別です。WordPress側の送信処理、SMTP認証、Fromアドレス、DNSのSPF/DKIM/DMARC、受信側の判定を上流から順番に切り分けると、原因を短時間で特定できます。
WordPressで問い合わせフォームを設置したあと、「送信完了と表示されたのに通知が来ない」「Gmailには届くのに別のアドレスには届かない」「パスワード再設定メールだけ迷惑メールへ入る」といった症状が起きることがあります。
ここで最初に避けたいのは、フォームプラグインを何度も入れ替えることです。メールは、フォーム入力→WordPress→送信処理→SMTPまたはサーバー→DNS認証→受信側判定という複数の層を通ります。どこで止まっているかを見ないままプラグインだけ交換すると、原因がDNSや送信元認証だった場合は何も変わりません。
僕は複数のWordPressサイトでZoho MailのSMTP接続、独自ドメインのSPF・DKIM・DMARC、問い合わせフォームの送信テストまで行ってきました。実運用では「設定した」ではなく、実際にフォームを送信し、受信箱に到着し、返信元まで正しいことを確認して初めて完了と考えた方が安全です。
最初に「どこまで成功しているか」を5段階で分ける
| 段階 | 確認すること | 失敗時に見る場所 |
|---|---|---|
| 1. フォーム処理 | 送信ボタン後に完了表示まで進むか | 必須項目、JavaScript、フォーム設定 |
| 2. WordPress送信処理 | wp_mail()やメールプラグインがエラーを返していないか | WordPressログ、SMTPプラグインの送信ログ |
| 3. SMTP認証 | SMTPサーバーへ接続・認証できるか | ホスト、ポート、暗号化、ユーザー名、パスワード |
| 4. ドメイン認証 | SPF・DKIM・DMARCが送信元と整合しているか | DNSのTXT/CNAME、Fromドメイン |
| 5. 受信側 | 迷惑メール、拒否、隔離がないか | Gmail/Outlook等の受信ログ・ヘッダー |
WordPress公式のwp_mail()ドキュメントでも、戻り値がtrueだからといって「相手が受信した」ことを意味しないと明記されています。trueは、WordPress側の送信処理がエラーなく受け付けられたことを示すにすぎません。つまり、送信成功表示だけで受信確認を省略しないことが重要です。
症状別に原因候補を絞る
問い合わせフォームだけ届かない
フォーム固有のTo/From設定、Reply-To、送信先の入力ミスを先に確認します。管理者メールやパスワード再設定メールは届くのに問い合わせだけ届かないなら、WordPress全体よりフォーム側の可能性が高くなります。逆に複数種類のWordPressメールがすべて届かないなら、SMTPやサーバー送信の共通経路を疑います。
自分宛てには届くがGmailで迷惑メールになる
この症状では、SPF・DKIM・DMARCとFromの整合性を確認します。Googleはすべての送信者にSPFまたはDKIMを求め、SPF・DKIM・DMARCを常に設定することも推奨しています。大量送信者にはさらに厳しい要件があります。小規模サイトの問い合わせ通知でも、独自ドメインの認証を整える価値があります。
SMTPテスト自体が失敗する
DNS認証より前に、接続情報を確認します。よくあるのは、465/SSLと587/TLSの取り違え、ユーザー名に完全なメールアドレスを入れていない、2段階認証を有効にしているのに通常パスワードを使っている、Fromと認証アカウントが一致していないケースです。
WordPress標準送信だけに依存しない方が切り分けやすい
WordPressはwp_mail()を使ってメールを送りますが、最終的な配送品質はサーバーやメールサービスの構成に依存します。問い合わせや会員通知など「届かないと業務影響が出るメール」なら、認証済みSMTPを使い、送信元を明確にした方が運用しやすくなります。
SMTP化のメリットは「絶対に届く」ことではありません。送信経路と認証主体が明確になり、接続エラー・認証エラー・受信側拒否を分けて調べやすくなることです。メール到達率は受信側の評価も関係するため、SMTPを設定しただけで100%を保証する表現は避けます。
FromアドレスとReply-Toを混同しない
フォーム利用者が入力したGmailアドレスをそのままFromに設定すると、あなたの独自ドメインのサーバーから「gmail.comを名乗るメール」を送る形になり、認証上不自然になります。Fromは自分が管理する独自ドメインの送信アドレスに固定し、利用者へ返信したいアドレスはReply-Toへ入れる設計が安全です。
From:contact@自分のドメイン / Reply-To:フォーム入力者のメールアドレス。これなら送信主体と返信先を分けられます。
SPF・DKIM・DMARCはここでは「診断項目」として見る
| 認証 | 何を確認するか | WordPress運用での意味 |
|---|---|---|
| SPF | その送信元サーバー/IPをドメインが許可しているか | 使うSMTPサービスをDNSで許可する |
| DKIM | メールが正規の鍵で署名され改ざんされていないか | 送信サービスが付ける署名をDNS公開鍵で検証 |
| DMARC | SPF/DKIMとFromドメインの整合性、失敗時の扱い | なりすまし対策と認証失敗の監視・ポリシー |
特にSPFは「サービスごとにTXTを1本ずつ追加」してはいけません。Zohoの公式ガイドでも、SPFレコードを複数作ると無効になるため、複数の送信元を1つのSPFレコードへ統合するよう案内しています。既存のSPFを消して上書きするのではなく、現在の送信元をすべて洗い出してから編集します。
Gmail側の要件も2026年時点で確認する
Googleのメール送信者ガイドラインでは、Gmail宛てのすべての送信者にSPFまたはDKIM、TLSなどの要件が示されています。1日5,000通を超える送信者にはSPF・DKIM・DMARCやワンクリック配信停止など追加要件があります。通常の問い合わせ通知は大量配信とは別ですが、認証済みドメインから送る設計は同じ方向です。
またGoogleは迷惑メール率を低く維持することも求めています。問い合わせフォームの自動返信を大量配信メールと同じアドレス・同じ運用で混ぜるより、用途を分ける方が原因調査もしやすくなります。
Authentication-Resultsで「どの認証が落ちたか」を確認する
「Gmailに届かない」「迷惑メールへ入る」場合は、WordPress側の送信成功表示だけで判断せず、実際に届いたテストメールのヘッダーを確認します。Gmailでは「メッセージのソースを表示」からAuthentication-Resultsを探すと、SPF・DKIM・DMARCの結果を切り分けられます。
| 表示例 | 意味 | 次に見る場所 |
|---|---|---|
spf=pass |
送信元IPがSPFで許可されている | DKIM・DMARCも確認 |
dkim=pass |
署名検証に成功 | 署名ドメインとFromの整合を確認 |
dmarc=pass |
SPFまたはDKIMがFromドメインと整合している | 迷惑メール率・本文・送信頻度などへ進む |
fail / permerror |
DNS認証やレコード設計に問題がある可能性 | SPF/DKIM/DMARCの実レコードを確認 |
Googleは未認証メールを5.7.26で拒否する例を公式に案内しています。SPFとDKIMが両方失敗している、SPFの-allに対して送信IPが許可されていない、DMARCポリシーに合格していない、といった場合は「SMTPで送れたからOK」ではありません。
Gmailは送信元IPのforward/reverse DNSも要件に含めています。ただしZoho Mailなど外部SMTPサービスを使う場合、そのSMTPサーバーのPTRは通常サービス提供者側の管理領域です。WordPress利用者が自分のWebサーバーIPへ無理にPTRを追加するのではなく、「実際にどのSMTP/IPから送られているか」を先に確認してください。
届かない時の10分チェックリスト
- フォームの送信先Toにタイプミスがない
- 迷惑メール・隔離フォルダを確認した
- 別種類のWordPressメールでも再現するか試した
- SMTPテストが成功する
- SMTPホスト・ポート・SSL/TLSが公式値と一致する
- 認証ユーザーとFromアドレスの関係が正しい
- SPFが複数レコードになっていない
- DKIMが有効である
- DMARCを段階的に設定している
- Gmailなど実際の外部受信先で到着まで確認した
設定変更後は「送信」だけでなく返信まで試す
僕がフォーム確認で重視しているのは、送信完了画面を見ることではありません。PCとスマホからフォームを送り、Zoho側など実際の受信箱へ届くこと、送信元表示が意図通りであること、Reply-Toから問い合わせ者へ返信できることまで確認します。
DNS変更直後は反映時間もあるため、1回失敗しただけで設定を何度も書き換えると原因が分からなくなります。変更内容と時刻を残し、DNS反映を待ってから再テストします。
やってはいけない対処
- 原因を調べずフォームプラグインだけ何度も交換する
- 利用者が入力した外部ドメインをFromにする
- SPFをサービスごとに複数行追加する
- DMARCを理解せず最初から強いrejectへする
- SMTPパスワードを記事・スクリーンショット・共有メモへ残す
- テスト送信成功だけで本番到達を確認しない
公式情報・参考資料
仕様・ガイドライン確認日:2026年10月1日。設定画面や料金は変更されるため、実作業前にリンク先の最新版も確認してください。
- WordPress Developer Resources:wp_mail()
- Gmail:メール送信者のガイドライン
- Zoho Mail:SMTP設定
- Zoho Mail:SPFレコード
- Zoho Mail:DMARCポリシー
- Gmail:SMTPエラーと5.7.26
あわせて読みたい
まとめ
WordPressメール不達は、フォーム、WordPress送信処理、SMTP、DNS認証、受信側の5層に分ければ切り分けできます。最短で直したい時ほど、一度に複数設定を変えず、どの層まで成功しているかを順番に確認してください。問い合わせは売上や連絡機会に直結するため、設定後は実際の受信箱と返信までテストして完了です。




コメント