0. はじめに - "その"お問い合わせフォーム、本当に動いてますか?
こんにちは!@nekosuke77777です。この記事は blastengine Advent Calendar 2025 の 22日目の記事です。
WordPressでWebサイトを構築し、「Contact Form 7」や「WooCommerce」を導入。お問い合わせフォームや購入完了通知メールを設定し、テスト送信もOK。「よし、完璧!」
…と思った数日後、お客様から「問い合わせたのに返信がない」「会員登録メールが届かない」というクレームが…。
これは、多くのWordPress開発者・運用者が一度は経験する「WordPressメール届かない問題」です。この問題の多くは、WordPressやプラグインのバグではなく、メール送信の「仕組み」と「認証」に対する理解不足が原因です。
この記事では、なぜWordPressのメールは届かないのか、そしてそれを根本的に解決するための実践的なノウハウ(SMTPプラグインの活用と、必須の認証技術)を解説します。
※非エンジニの私でも簡単に解決できました!!
1. なぜWordPressのデフォルトメールは「届かない」のか?
WordPressのメールが届かない主な理由は、その送信方法にあります。
原因1: wp_mail() はサーバーから「直接」送ろうとする
WordPressのメール機能 (wp_mail() 関数) は、デフォルトではサーバーにインストールされているメール送信機能(SendmailやPostfix)を呼び出します。これは、PHPの mail() 関数が使われることが多いです。
これは例えるなら、「実績のない無名のサーバーが、いきなりGmail(受信側)の玄関を叩いて『example.comからの手紙です』と言っている」ような状態です。
原因2: サーバーのIPレピュテーションが低い
受信側(GmailやOutlookなど)は、メールを受け取る際、送信元サーバーのIPアドレスの「レピュテーション (信用スコア)」を厳しくチェックします。
-
共用レンタルサーバーの場合:
同じIPアドレスを使っている他のユーザーがスパムメールを送信した場合、IPごとブラックリストに登録され、あなたの無実なWordPressサイトからのメールも巻き添えで「迷惑メール」扱いされます。 -
VPSなどで新規に立てたサーバーの場合:
新しすぎるIPアドレスは「信用の実績」がゼロです。実績がないIPからいきなりメールが送られてくると、スパム業者を疑われ、受信を拒否されたり、迷惑メールフォルダに入れられたりします。
原因3: メール認証が設定されていない (最重要)
これが最大の理由です。
メールはプロトコルの仕組み上、Fromヘッダ(送信元アドレス)を簡単に偽装できます。
そのため、受信側は「このメールは、本当に From に書かれているドメイン (例: your-site.com) から送られたものか?」を認証します。
wp_mail() から直接送られるメールの多くは、この認証設定がされていません。
「your-site.com からのメールです」と名乗っているのに、送信元は rental-server-123.com のIPアドレス。これでは「なりすましメール」と疑われても仕方ありません。
2. 解決策: WordPressに「正しいメールの送り方」を教える
この問題を解決する最も確実な方法は、「WordPress(サーバー)から直接メールを送る」のをやめ、「信頼できるメール配信のプロに送信を依頼する」ように設定変更することです。
ステップ1: SMTPプラグインを導入する
「WP Mail SMTP」や「Fluent SMTP」といったプラグインを導入します。これらのプラグインは、WordPressの wp_mail() 関数の動作を上書き(オーバーライド)し、メール送信をすべて外部のSMTPサーバー経由に切り替えてくれます。
ステップ2: 信頼できるSMTPサーバー(メール配信サービス)を選ぶ
プラグインを入れたら、送信を依頼する「プロ」を選びます。
-
選択肢A: Gmail / Google Workspace (小規模向け)
既存のGoogleアカウントを使えますが、現在はセキュリティ対策(アプリパスワードの発行など)が複雑化しており、送信数制限(1日500通など)もあります。あくまでテスト用や極小規模な個人ブログ向きです。 -
選択肢B: メール配信サービス (推奨)
SendGrid, Amazon SES といった、メール配信を専門とするサービス(Email Service Provider)です。これらを利用するメリットは計り知れません。- 高いレピュテーションを持つIP: 専門家が管理・ウォームアップしたIP群から送信されるため、到達率が格段に上がります。
- 認証設定のサポート: SPFやDKIMといった認証設定のガイドが充実しています。
- バウンス処理: 宛先不明(バウンス)になったアドレスを自動で管理し、リストの健全性を保ってくれます。
- 大量送信: 大量のメルマガや通知にも対応できます。
WordPressでビジネスサイトを運営するなら、ESPの利用はもはや必須と言えます。
参考: 私は「blastengine」を設定してメール配信をしてみました!
これまでメール配信といえば、SendGrid や Amazon SES などの海外製サービスが主流でした。しかし近年では、国産サービスとして新たに「blastengine(ブラストエンジン)」という選択肢が注目を集めています。
blastengineは株式会社ラクスライトクラウド(「楽楽精算」で知られるラクスのグループ会社)が提供するメール配信サービスです。同社はメルマガ配信システム「ブラストメール」も展開しており、20年以上にわたりメール配信のノウハウを蓄積してきた国内トップクラスの実績を持ちます。
利用したプラグインは「WP Mail SMTP」です。以下の記事に沿って設定を進めると簡単に接続することができました。
※実際の配信にはblastengineの無料トライアル環境または本契約が必要になります。
blastengine公式サイト:https://blastengine.jp/
冒頭でもお伝えしましたが、私は非エンジニアです。そんな私でも10分程度で簡単に設定することができました。また、本投稿ではblastengineやWP Mail SMTPの詳細な設定手順については割愛します。
3. 【最重要】メール配信サービス を使ったら必ず設定する「メール認証」
SMTPプラグインとメール配信サービス (例: blastengine)を契約しただけでは、まだ道半ばです。最後に、「あなたのドメイン (your-site.com) からのメール送信を、メール配信サービス(blastengine) に委任します」という宣言を、DNS(インターネット上の住所録)を通じて公開する必要があります。
これが SPF, DKIM, DMARC と呼ばれるメール認証技術です。これらはすべて、あなたのドメインのDNS (TXTレコード) に設定します。
3-1. SPF (Sender Policy Framework) - 「場所」の認証
-
役割: 「私のドメイン (
your-site.com) からのメールは、blastengineのサーバーから送られることを許可します」と宣言します。 -
設定例:
your-site.com. IN TXT "v=spf1 include:_spf.blastengine.jp ~all"
※includeの値は利用するESPのドキュメントに従ってください
※正確な記述はblastengine管理画面の『設定』をご確認ください
3-2. DKIM (DomainKeys Identified Mail) - 「電子署名」
-
役割: 「このメールは、確かに私 (
your-site.com) が許可したESPが送信したもので、途中で改ざんされていません」と証明する電子署名です。 -
設定方法:
ESPの管理画面で発行される特定のレコード(例:be._domainkey.your-site.com)をDNSに設定します。これにより、ESPがあなたのドメインに代わってメールに署名できるようになります。
3-3. DMARC (Domain-based Message Authentication, Reporting, and Conformance)
- 役割: SPFとDKIMのチェックを使い、「認証に失敗したメール(=なりすまし)をどう扱うか」を受信側に指示します。
-
設定例:
_dmarc.your-site.com. IN TXT "v=DMARC1; p=none; rua=mailto:dmarc-reports@your-site.com" -
ポイント:
- まずは
p=none(モニタリングモード) で設定し、レポート (rua) を受信します。 - レポートを見て、WordPressからのメール(ESP経由)が正しく認証されていることを確認できたら、
p=quarantine(迷惑メールへ) やp=reject(拒否) へとポリシーを強化していきます。
- まずは
より詳しい説明や設定方法が知りたい方は以下の記事も参考にしてみるとよいでしょう。
4. アーキテクチャの変化
この設定を行うことで、メール送信の経路は以下のように変わります。
【Before】(届かない構成)
[WordPress (wp_mail)] → [レンタルサーバー (mail関数)] → (認証なし) → [受信側 (Gmail)]
- 結果: 迷惑メール判定 or 拒否
【After】(届く構成)
[WordPress (SMTPプラグイン)] → [ESP (blastengine)] → (SPF/DKIM認証OK) → [受信側 (Gmail)]
- 結果: 正しく受信トレイに届く
5. まとめ
WordPressでメールが届かない問題は、WordPressのバグではなく、メール送信の「インフラ」と「認証」の問題です。
-
wp_mail()での直接送信は今すぐやめる。 - SMTPプラグインを導入する。
- blastengine のような信頼できる ESP (メール配信サービス) と契約する。
- ESPの指示に従い、自社ドメインのDNSに SPF と DKIM を設定する。
- DMARC を設定し、なりすまし対策を強化する。
「メールは送れて当たり前」の時代は終わりました。「メールは認証してこそ届く」時代です。本番環境で「メールが届かない!」と慌てる前に、適切なメール送信基盤を構築しましょう。📨