WordPressサイトからの通知メールがGmailに届かなくて困っていませんか?この記事では、実際に遭遇したメール配信問題とその解決方法を詳しく解説します。

Contents
Gmailに届かない問題の発生状況
- bbPressの通知メールがGmail宛てに届かない
- さくらのウェブメールでは送信履歴を確認できる
エラーメッセージ
550-5.7.26 Your email has been blocked because the sender is unauthenticated.
550-5.7.26 Gmail requires all senders to authenticate with either SPF or DKIM.
Authentication results:
DKIM = did not pass
SPF [wwwxxxx.sakura.ne.jp] with ip: [xxx.xx.xx.xxx] = did not pass
そもそもWordPressのメールの送信フローはどうなっているか
wp_mail()
関数が呼び出されるwp_mail()
内で PHPMailer オブジェクトを生成- PHPMailerが本文・件名・宛先などをセット
- デフォルト設定では
isMail()
が使われ、PHPのmail()
関数を呼び出す
mail()
関数がサーバーの sendmail(または同等のMTA) に渡す- サーバーのMTAが宛先のメールサーバーへ配信

メソッド | Mailer設定値 | 動作 | メリット |
---|---|---|---|
isMail() | 'mail' | PHPの mail() 関数を使って、サーバー内のMTA(sendmail, Postfixなど)に渡すサーバー依存で迷子メールやSPF/DMARCエラーが起きやすい | 設定不要で簡単、ほとんどのレンタルサーバーで動く |
isSendmail() | 'sendmail' | サーバーに直接インストールされた sendmail コマンドを叩いて送信sendmailがインストールされていない環境では不可 | 高度なオプションや細かい制御が可能 |
isSMTP() | 'smtp' | SMTPプロトコルで指定したメールサーバー(Gmail, SendGridなど)に直接接続して送信 設定が必要(ホスト・ポート・ユーザー・パスワードなど) | 認証付きで安全、外部サービス利用で到達率が高い |
送信元ドメインのSPF・DKIM認証が設定されていない
送信元ドメインのSPF・DKIM認証が設定されていないというエラーは上記のフローでは、レンタルサーバーのMTAで発生していることになります。
こちら契約しているサーバー、ドメインの管理画面で設定を確認しましたが、認証設定ができませんでした、、、
ということで一つ選択肢である、PHPMailerの送信方式をsmtpで試してみることにしました!
SMTPとは何か
SMTP(Simple Mail Transfer Protocol)とは、メールを送信するための通信プロトコルです。インターネット上でメールを送信する際の標準的な仕組みで、メールサーバー間でメールをやり取りするために使用されます。
WordPressでメールを送信する場合、以下の2つの方法があります:
PHP Mailとは
WordPressが標準で使用する方法。サーバーのメール機能を直接利用してメールを送信します。設定は簡単ですが、到達率や認証面で課題があることがあります。
SMTP送信とは
外部のメールサーバー(Gmail、SendGridなど)を経由してメールを送信する方法。認証機能が充実しており、到達率が高いのが特徴です。
解決方法の選択肢
メール配信問題には複数の解決方法があります:
1. さくらサーバーでSPF/DKIM設定(根本解決)
- メリット:サーバー側で認証問題を解決
- デメリット:設定が複雑、反映に時間がかかる
2. 外部SMTPサービス利用(推奨)
- メリット:確実性が高い、即座に使える
- デメリット:外部サービスに依存
Gmail SMTPを使用した解決手順
今回は最も確実性の高い「Gmail SMTP」を使用した解決方法を実践しました。
必要なもの
- Gmailアカウント
- WP Mail SMTPプラグイン
手順1: プラグインのインストール
WordPress管理画面で「WP Mail SMTP」プラグインをインストール・有効化します。
手順2: Gmailアプリパスワードの生成
- Googleアカウント設定にアクセス
- 「セキュリティ」メニューを選択
- 「2段階認証プロセス」を有効化(未設定の場合)
- 「アプリパスワード」を選択
- アプリ:「メール」、デバイス:「その他(カスタム名)」を選択
- 「WordPress」と名前を入力して生成
- 16文字のパスワードをコピー(スペースは除去)
手順3: WP Mail SMTP設定
- メーラー選択で「その他の SMTP」を選択
- 以下の設定を入力:
- SMTPホスト:
smtp.gmail.com
- ポート:
587
- 暗号化:
TLS
- 認証: オン
- ユーザー名: Gmailアドレス(例:10121012tt@gmail.com)
- パスワード: 生成したアプリパスワード
- From Email: 同じGmailアドレス
- From Name: サイト名など
- SMTPホスト:
手順4: テスト送信
設定完了後、WP Mail SMTPの「メールテスト」機能でテストメールを送信し、正常に届くことを確認します。
トラブルシューティング
設定中に遭遇した問題と解決方法:
接続エラー(ポート465の場合)
SMTP Error: Could not connect to SMTP host.
解決方法: ポートを465から587に変更し、暗号化をSSLからTLSに変更
認証エラー
SMTP Error: Could not authenticate.
解決方法:
- アプリパスワードからスペースを完全に除去
- 新しいアプリパスワードを再生成
- ユーザー名がGmailアドレス全体になっているか確認
さくらサーバーでの注意点
さくらのレンタルサーバーでは、外部SMTP接続に一部制限がある場合があります:
- ポート465(SSL)がブロックされることがある
- ポート587(TLS)の方が安定している
- PHP Mailも代替手段として有効
結果と効果
Gmail SMTP設定完了後:
- bbPressの通知メールが正常にGmailに届くようになった
- WordPressからのすべてのメールが認証済みで送信される
- メール到達率が大幅に改善
まとめ
WordPressからのメール配信問題は、多くの場合メール認証の不備が原因です。Gmail SMTPを使用することで:
- 確実な配信: 認証済みメールサーバーを使用
- 簡単な設定: プラグインで管理が容易
- 無料利用: Gmailアカウントがあれば追加費用なし
ただし、より大量のメール送信や企業利用の場合は、SendGridやAmazon SESなどの専門的なメール配信サービスの利用も検討することをお勧めします。
メール配信は現代のWebサイト運営において重要な要素です。適切な設定により、ユーザーとのコミュニケーションを確実に行えるようになります。