2026年5月20日
2026年5月20日
WordPressのメールが届かない場合の解決方法【SMTP設定】
はじめに
WordPressのメール送信にはwp_mail()関数が使われますが、デフォルトではサーバーのPHP mail()関数を使うため、スパムフィルターに引っかかったり、共有ホスティングではそもそも送信できない場合があります。SMTPを使った正しい設定が解決策です。
メールが届かない主な原因
1. サーバーのメール送信設定が不十分:PHP mail()を使っているため認証がない
2. SPF/DKIMレコードが未設定:送信元ドメインの正当性を証明できない
3. スパムフォルダに入っている:迷惑メールとして分類されている
4. 送信元メールアドレスの問題:存在しないアドレスから送信している
5. ホスティングのメール制限:共有サーバーでのメール送信に制限がある
解決手順
ステップ1:まずスパムフォルダを確認
受信者のスパム・迷惑メールフォルダを確認します。届いていれば送信自体は成功しており、SPF/DKIM設定の問題です。
ステップ2:SMTPプラグインを導入する(推奨)
「WP Mail SMTP」プラグインが最も広く使われています:
1. プラグイン → 新規追加 → 「WP Mail SMTP」をインストール・有効化
2. WP Mail SMTP → 設定 → 「SMTP」を選択
3. SMTPサーバー情報を入力
Gmailで送信する場合:
SMTPホスト: smtp.gmail.com
SMTPポート: 587(TLS)または 465(SSL)
認証: 有効
ユーザー名: your@gmail.com
パスワード: Googleアプリパスワード(2段階認証が必要)
SendGridで送信する場合(大量送信向け):
SMTPホスト: smtp.sendgrid.net
SMTPポート: 587
ユーザー名: apikey
パスワード: SendGridのAPIキー
ステップ3:コードでSMTPを設定する(プラグインなし)
// functions.phpに追加
add_action('phpmailer_init', function($phpmailer) {
$phpmailer->isSMTP();
$phpmailer->Host = 'smtp.gmail.com';
$phpmailer->SMTPAuth = true;
$phpmailer->Port = 587;
$phpmailer->SMTPSecure = 'tls';
$phpmailer->Username = 'your@gmail.com';
$phpmailer->Password = 'your-app-password';
});
ステップ4:送信元アドレスを設定する
// functions.phpに追加
// デフォルトの送信元をドメインのメールアドレスに変更
add_filter('wp_mail_from', function($email) {
return 'noreply@yoursite.com';
});
add_filter('wp_mail_from_name', function($name) {
return 'サイト名';
});
ステップ5:SPF・DKIMレコードを設定する
DNSレコードにSPFを追加(ドメインのDNS設定で行う):
タイプ: TXT
名前: @(または yoursite.com)
値: v=spf1 include:_spf.google.com ~all
SMTPサービス(SendGrid・Mailgunなど)を使う場合はDKIMも設定します。
ステップ6:テストメールを送信して確認
「WP Mail SMTP」プラグインには「Email Test」機能があり、設定後にテストメールを送信して動作確認できます。
まとめ
WordPressのメール未着はSMTPプラグイン(WP Mail SMTP)を導入してGmail・SendGridなどの信頼できるSMTPサーバー経由で送信するのが最も確実な解決策です。SPF/DKIMレコードの設定も合わせて行うことでスパム判定を防げます。
関連記事: