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='' で手動承認できます。