WordPressのメールが届かない時のSMTP設定
目次
この記事でわかること
- 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にメールが届かない時の対処も合わせて確認してください。
まず確認: 本当に「届いていない」のか
本格的な切り替え作業の前に、症状の切り分けをしておきます。
- WordPress管理画面の「送信ログ」(プラグインで取得)で送信そのものは成功しているか
- 受信側Gmailの「迷惑メール」フォルダや「すべてのメール」を検索しても見つからないか
- 別のメールアドレス(自社ドメイン以外、例: 社員のGmail個人)宛に送ると届くか
- 送信元が
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の状態が数十秒でレポートされます。 判断に迷う場合はお問い合わせからご相談ください。専門家がわかりやすくサポートいたします。