2026年5月20日

2026年5月20日

WordPressのメール認証・確認メールが届かない場合の解決方法

はじめに

WordPressのユーザー登録時やメールアドレス変更時に送られる確認メールが届かないトラブルは非常に多いです。原因の大半はWordPressのメール送信設定の問題で、SMTPプラグインの導入で解決します。

確認メールが届かない原因

| 原因 | 確認方法 |

|------|---------|

| サーバーのsendmailが無効 | hosting側のSMTP設定を確認 |

| スパムフォルダに振り分け | 迷惑メールフォルダを確認 |

| 送信元アドレスのSPF失敗 | MXToolboxでSPFを確認 |

| 送信ドメインとの不一致 | From: アドレスをドメインと統一 |

解決手順

ステップ1:スパムフォルダを確認

差出人 wordpress@yourdomain.com または no-reply@yourdomain.com を確認します。

ステップ2:wp_mailの動作をテスト

# WP-CLIでテスト送信
wp eval "
\$result = wp_mail('your@email.com', 'テスト送信', 'WordPressからのテストメールです');
echo \$result ? '送信成功' : '送信失敗';
"

ステップ3:SMTPプラグインを設定

// functions.php または mu-plugins に追加
add_action('phpmailer_init', function($phpmailer) {
    $phpmailer->isSMTP();
    $phpmailer->Host       = 'smtp.gmail.com';
    $phpmailer->SMTPAuth   = true;
    $phpmailer->Port       = 587;
    $phpmailer->Username   = 'your@gmail.com';
    $phpmailer->Password   = 'アプリパスワード';
    $phpmailer->SMTPSecure = PHPMailer\PHPMailer\PHPMailer::ENCRYPTION_STARTTLS;
    $phpmailer->From       = 'your@gmail.com';
    $phpmailer->FromName   = get_bloginfo('name');
});

ステップ4:送信元アドレスを変更

// functions.php — WordPress のデフォルト送信元を変更
add_filter('wp_mail_from', function($email) {
    return 'noreply@example.com'; // 自分のドメインと一致させる
});

add_filter('wp_mail_from_name', function($name) {
    return get_bloginfo('name');
});

ステップ5:管理者が手動でユーザーを承認

確認メールを待たずに管理者がユーザーを有効化できます。

# ユーザーのステータスを確認
wp user get username --fields=ID,user_status,user_email

# アクティベーションキーをクリア(承認済みに)
wp user update username --user_activation_key=''

ステップ6:確認メールを再送信

# 確認メールを手動で再生成・送信
wp eval "
\$user = get_user_by('login', 'username');
\$key  = get_password_reset_key(\$user);
\$url  = network_site_url('wp-login.php?action=rp&key=' . \$key . '&login=' . rawurlencode(\$user->user_login));
wp_mail(\$user->user_email, 'メール確認', '確認リンク: ' . \$url);
echo '再送信完了';
"

WP Mail SMTPプラグインの活用

# プラグインをインストール
wp plugin install wp-mail-smtp --activate

# プラグインの設定は管理画面 → WP Mail SMTP → 設定 から

注意事項

  • Gmailのアプリパスワードは2段階認証を有効にしてから取得してください
  • 本番環境ではSMTP認証情報をfunctions.phpに直接書かず、定数や環境変数で管理してください
  • SendGrid・Mailgunなどの専用メール配信サービスの利用も推奨です

まとめ

確認メールが届かない場合はまずスパムフォルダを確認し、次にSMTPプラグイン(WP Mail SMTP)を導入してください。急ぎの場合は wp user update --user_activation_key='' で手動承認できます。

お気軽にご相談ください

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