メール認証SPFDKIMトラブルシューティング

WordPressのメールが届かない時のSMTP設定

ドメイン番人5 分で読めます
目次

この記事でわかること

  • WordPressのお問い合わせフォームメールが届かない典型パターン
  • wp_mail() のデフォルト挙動とSPF / DKIMが通らない理由
  • WP Mail SMTP 等で外部SMTPに切り替える設計の選び方
  • 切り替え後にSPF・DKIM・DMARCを整える実務手順

「お問い合わせフォームのメールが届かない」が起きる理由

Contact Form 7 / WPForms / Snow Monkey Forms などで設定したお問い合わせ通知が、特に Gmail や Outlook 宛で届かない、という相談はとても多いです。原因のほとんどは送信失敗ではなく受信側で迷惑メール判定 or サイレント破棄されています。

背景には WordPress 標準の wp_mail() 関数が PHP の mail() を呼ぶ仕組みがあります。送信元はサーバーのホスト名(例: [email protected])になり、自社ドメインのSPF / DKIMは適用されません。2024年2月のGoogle、2025年5月のMicrosoftの送信者要件強化で、この構成は受信拒否される可能性が高くなりました。詳細はGmailにメールが届かない時の対処も合わせて確認してください。

wp_mail()と外部SMTP経由の違い

まず確認: 本当に「届いていない」のか

本格的な切り替え作業の前に、症状の切り分けをしておきます。

  1. WordPress管理画面の「送信ログ」(プラグインで取得)で送信そのものは成功しているか
  2. 受信側Gmailの「迷惑メール」フォルダや「すべてのメール」を検索しても見つからないか
  3. 別のメールアドレス(自社ドメイン以外、例: 社員のGmail個人)宛に送ると届くか
  4. 送信元が wordpress@<サーバーホスト名> のような自社ドメイン以外になっていないか

[email protected] のような送信元になっているなら、ほぼ確実にSPF / DKIMの不整合が原因です。

お問い合わせメール不達の切り分けツリー

解決策の本筋: 外部SMTP経由に切り替える

wp_mail() を外部SMTPに差し替えることで、送信元アドレスを自社ドメインに揃え、その送信プロバイダのDKIM署名を載せて送ります。代表的な選択肢:

サービス 無料枠 特徴
Resend 月3,000通 DKIM自動、設定が最短
SendGrid 月100通 国内事例多数、配信レポート充実
Mailgun 試用枠 API設計が綺麗、国際送信向き
Amazon SES 月62,000通(EC2経由) 安価、AWSアカウント前提
Google Workspace SMTP Relay プラン内 既にGWS契約があるなら有力

SendGrid / SES / Resend それぞれの認証手順は本シリーズで個別記事を用意しています。

WP Mail SMTP プラグインを使う構成

最も普及しているのが WP Mail SMTP プラグインです。「Mailer」設定で上記サービスを選び、APIキーを登録するだけで wp_mail() を差し替えられます。実装上のポイント:

  • From Email: 自社ドメインのアドレス(例: [email protected])に固定
  • Force From Email をオンにし、Contact Form 7 等の設定で上書きされるのを防ぐ
  • From Name: わかりやすい会社名

プラグインを使わず phpmailer_init フックや wp_mail フィルタで直接設定することも可能ですが、テーマ更新で消えるリスクがあるため、本番運用ではプラグイン構成を推奨します。

DNS側で整えるSPF / DKIM / DMARC

切り替えただけではまだ完了ではありません。送信プロバイダのDKIMと、受信側のDMARCアラインメントを通す必要があります。

レコード種別 name value の指針
TXT (SPF) @ v=spf1 で始め、利用するSMTPサービスのincludeを追加し ~all で締める
TXT (DKIM) サービス指定のセレクタ._domainkey プロバイダが発行した公開鍵を登録
TXT (DMARC) _dmarc v=DMARC1; p=none; rua=mailto:[email protected] から開始

注意点: 既存のホスティング業者のSPF(例: ConoHaのinclude)と新しい外部SMTPのincludeが重複すると、SPFのlookup上限10個(RFC 7208)に近づきます。実際にどこから送るかを起点に逆算するのが鉄則です(SPFフラット化参照)。

DMARCは p=none から始め、reportを2〜4週見て問題なければ段階的に強化します(DMARC設定ガイド)。

切り替え後の検証

外部から実値を引いてレコードが配信されているかを必ず確認します(SPF設定ガイドDKIM検証ガイド)。最後に WP Mail SMTP の「Email Test」機能でGmail宛にテスト送信し、ヘッダの「Authentication-Results」で spf=pass dkim=pass dmarc=pass が揃えば運用可能です。Contact Form 7 / WPForms 等のフォーム本体からも実フォームを送って、自動返信・管理者通知の両方が届くことを確認してください。

まとめ

  • wp_mail() のデフォルトは送信元がホスト名になり、SPF / DKIMが通らない
  • 解決策は外部SMTPプロバイダへの切り替え(WP Mail SMTPプラグインが標準)
  • From Email を自社ドメインに固定し、Force From Email をオンに
  • 送信プロバイダ側のSPF include / DKIMセレクタをDNSに反映
  • 既存ホスティングのSPFと重複しないよう、送信元を起点に再設計
  • 検証はGmail宛のテスト送信 + ヘッダの Authentication-Results で

自社の状況を確認してみませんか

設定状況がわからない方は、無料のドメイン診断で現状をチェックできます。 DMARC・SPF・DKIM・SSLの状態が数十秒でレポートされます。 判断に迷う場合はお問い合わせからご相談ください。専門家がわかりやすくサポートいたします。

次の一歩は無料診断から。