WordPressでのメール送信は、一見シンプルに見えますが、裏側ではいくつかのステップを経て行われています。デフォルトの状態では、WordPressはWebサーバーの機能を借りてメールを送ります。
以下に、その仕組みを分かりやすく解説します。
1. メール送信の基本的な流れ
WordPressがメールを送るプロセスは、大きく分けて以下の4つの段階で進みます。
-
トリガー(きっかけ)
-
お問い合わせフォームの送信、パスワードリセットの要求、新しいコメントの通知、ECサイトでの注文確定など、ユーザーやシステムのアクションが発生します。
-
-
WordPressの処理 (
3ss7cp_mail)-
WordPress内部にある
3ss7cp_mail()という関数が呼び出されます。これは、「メールを送る準備をして!」という命令です。 -
この時、WordPressに標準搭載されているライブラリ PHPMailer が動きます。これがメールの宛先、件名、本文などを整理してパッケージ化します。
-
-
サーバーへの引き渡し (PHP
mail関数)-
WordPressは、Webサーバー(PHP)に対して「このメールを送って」と依頼します。通常はPHPの
mail()関数が使われます。
-
-
Webサーバーからの送信 (MTA)
-
Webサーバー(ApacheやNginxなどが動いているサーバー)の中にあるメール配送プログラム(SendmailやPostfixなど)が、インターネットを通じて受信者のメールサーバーへメールを届けます。
-
2. なぜデフォルトのままでは「届かない」ことが多いのか?
多くのWordPressユーザーが直面するのが、「メールが迷惑メールに入る」あるいは「全く届かない」という問題です。これは、上記のステップ4(Webサーバーからの送信)に弱点があるためです。
| 特徴 | Webサーバー (デフォルト) | SMTPサーバー (推奨) |
| 主な役割 | Webページを表示すること | メールを確実に届けること |
| 信頼性 | 低い。なりすましと疑われやすい | 高い。認証を経て送信される |
| 送信元 | wordpress@ドメイン名 などになりがち |
実際のメールアカウントを使用 |
| 到達率 | スパム扱いされやすい | 正常に届きやすい |
ここがポイント:
Webサーバーは「Webサイトを見せる」のが本業であり、「メールを送る」のはおまけ機能のようなものです。そのため、GmailやOutlookなどの受信側サーバーから見ると、「Webサーバーから送られてくるメールは怪しい(なりすましの可能性がある)」と判断されやすく、ブロックされることがよくあります。
3. 推奨される解決策:SMTPの使用
この問題を解決するために、SMTP(エスエムティーピー)という仕組みを使うのが一般的です。
-
仕組み: WordPressがWebサーバーの機能を使わず、外部の信頼できるメールサーバー(Gmail, Outlook, SendGrid, エックスサーバーのメール機能など)に接続し、そこからメールを送ってもらう方法です。
-
方法: 「WP Mail SMTP」などのプラグインを使用します。
これにより、「Webサーバーが無理やり送った手紙」ではなく、「郵便局(正規のメールサーバー)を通して送った手紙」として扱われるため、到達率が劇的に向上します。
プラグインによるSMTPの使用
WordPressのSMTPプラグインといえば、実績・信頼性ともに「WP Mail SMTP」が事実上の標準(デファクトスタンダード)です。利用者数が圧倒的に多く、設定も分かりやすいため、まずはこれを使うことを強くおすすめします。
以下に、最も汎用的な「レンタルサーバーのメール機能(Xserver、さくらサーバーやConoHaなど)を使って送信する場合」の設定手順を解説します。
おすすめプラグイン: WP Mail SMTP
このプラグインは、Gmail、Outlook、SendGridなど様々な送信元に対応していますが、今回は多くの人が利用する「その他のSMTP(レンタルサーバーのメール)」の設定方法をご紹介します。
設定手順 (WP Mail SMTP)
1. プラグインのインストールと有効化
-
WordPress管理画面の [プラグイン] > [新規追加] をクリック。
-
検索窓に「WP Mail SMTP」と入力。
-
鳩のアイコンのプラグインを [今すぐインストール] し、[有効化] します。
2. 基本設定
有効化すると設定ウィザード(案内画面)が出ることがありますが、管理画面メニューの [WP Mail SMTP] > [設定] から手動で行う方が確実です。
「一般」タブで以下の項目を設定します。
-
送信元メールアドレス: サイトから送られるメールの「From」アドレス(例:
info@yourdomain.com)。※サーバーで作成したメールアドレスと一致させるのが無難です。 -
送信者名: 受信箱に表示される名前(サイト名など)。
3. メーラーの選択
画面を下にスクロールし、[メーラー] の項目で 「その他のSMTP」 を選択します。
(※Gmailなどを使いたい場合はここでGmailを選びますが、認証設定が少々複雑です)
4. SMTPオプションの入力
「その他のSMTP」を選ぶと、さらに下に詳細な入力欄が現れます。ここにはお使いのレンタルサーバーのメール設定情報を入力します。
(サーバーの管理画面で「メールソフト設定情報」などを探すと記載されています)
| 項目 | 入力内容の例(サーバーにより異なります) |
| SMTPホスト | sv1234.xserver.jp (Xserverの場合) など |
| 暗号化 | 通常は SSL または TLS を選択 |
| SMTPポート | SSLなら 465、TLSなら 587 が一般的 |
| 認証 | ON にする |
| SMTPユーザー名 | メールアドレスそのもの(例: info@yourdomain.com) |
| SMTPパスワード | そのメールアドレスを作成した時に決めたパスワード |
入力したら [設定を保存] をクリックします。
5. テストメールの送信(重要)
設定が正しいか必ず確認します。
-
[WP Mail SMTP] > [ツール] をクリック。
-
「メールテスト」 タブが開きます。
-
「送信先」に自分のプライベートアドレス(Gmailなど)を入力し、[メールを送信] をクリック。
-
「成功しました!」 と表示され、実際にメールが届けば設定完了です。
メーラー(送信手段)の選び方
設定の際、どのサービスを使うべきか迷う場合は以下を参考にしてください。
-
「その他のSMTP」(レンタルサーバー)
-
おすすめ: 普通の企業サイト、ブログ、ポートフォリオ。
-
理由: 追加料金がかからず、設定がシンプル。
-
-
「Gmail / Google」
-
おすすめ: 個人の小規模サイト、テスト環境。
-
注意: GoogleのAPI設定が必要で少し手間がかかります。送信数制限(1日500通など)があります。
-
-
「SendGrid / Brevo」
-
おすすめ: 会員サイト、ECサイト、メルマガ配信など大量にメールを送る場合。
-
理由: 到達率が非常に高く、大量送信でも遅延しにくいですが、従量課金やアカウント登録が必要です。
-
メールが届かない原因を特定する方法
メールが届かない原因は多岐にわたりますが、「どこで止まっているか」を切り分けることで、原因を特定できます。
原因は大きく分けて以下の3箇所に潜んでいます。
-
WordPress内部(プラグインの不具合や設定ミス)
-
サーバー/通信経路(SMTP認証エラー、サーバーの制限)
-
受信側(迷惑メール判定、ブロック)
これらを特定するための具体的な手順は以下の通りです。
手順1:エラーログを確認する(最強の近道)
「メールが送られたかどうか」「送ろうとしてどんなエラーが出たか」を記録するプラグインを入れて確認するのが最も確実です。
おすすめツール: WP Mail Logging(無料)
※先ほどの「WP Mail SMTP」を入れている場合は、その中の「メールテスト」機能でも代用できますが、このプラグインは過去の履歴が見やすいです。
-
プラグインをインストール・有効化する。
-
お問い合わせフォームなどから、テスト送信を行う。
-
管理画面の [WP Mail Logging] を見る。
【判定方法】
-
ログに記録がない場合:
-
原因: フォームプラグイン(Contact Form 7など)の設定ミス、または他のプラグインとの競合(キャッシュ系など)で、そもそもメール生成処理が動いていません。
-
-
「Error(赤色)」になっている場合:
-
原因: WordPressからサーバーへの受け渡し、またはサーバーの認証で失敗しています。「Connection timed out」や「Authentication failed」などのエラーメッセージが表示されるので、それを読み解きます。
-
-
「Sent(正常送信)」になっているのに届かない場合:
-
原因: WordPressと送信サーバーは仕事をしましたが、「受信側」または「途中経路」でブロックされています。これは「迷惑メール判定」の可能性が高いです。
-
手順2:テスト送信でエラーメッセージを見る
「WP Mail SMTP」プラグインを入れている場合、この機能が原因特定に非常に役立ちます。
-
[WP Mail SMTP] > [ツール] > [メールテスト] を開く。
-
自分のメールアドレス宛に送信ボタンを押す。
【よくあるエラーと原因】
-
Authentication failed/Incorrect authentication data-
原因: SMTPのユーザー名かパスワードが間違っています。余計なスペースが入っていないか再確認してください。
-
-
Connection timed out-
原因: ホスト名が間違っているか、ファイアウォールでブロックされています。
-
-
Sender address rejected-
原因: 「送信元アドレス」として設定したメールアドレスが、そのサーバーでの送信を許可されていません。(例:エックスサーバーからGmailのアドレスを送信元にして送ろうとしている等)
-
手順3:迷惑メール判定の可能性を疑う(SPF設定)
手順1や2で「成功」と出るのに届かない場合、なりすましメールとして処理されている可能性が濃厚です。特にGmail宛(@gmail.com)に届かないケースが増えています。
チェックすべき項目:
-
送信元アドレスの不一致:
WordPressの設定画面(設定 > 一般)の「メールアドレス」と、実際に送信に使っているサーバーのドメインが一致しているか確認してください。
-
NG例:サーバーはXserverなのに、送信元アドレスを
myname@gmail.comやyahoo.co.jpにしている。
-
-
SPFレコードの設定:
ドメインのDNS設定(お名前.comやムームードメインなどの管理画面)で、SPFレコードが設定されているか確認してください。これは「このサーバーからメールを送ってもいいですよ」という証明書のようなものです。
診断チャート
問題の切り分けをまとめると以下のようになります。
-
ログ記録プラグインを入れる
-
↓ ログに残らない → フォームの設定やキャッシュプラグインを見直す。
-
↓ ログにエラーが出る → SMTP設定(パスワード等)を見直す。
-
↓ ログは成功だが届かない → 迷惑メールフォルダ確認、SPFレコード確認。
-