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レコードの設定も合わせて行うことでスパム判定を防げます。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ