2026年5月20日

2026年5月20日

WordPressのパスワードをメールでリセットする方法と届かない場合の対処

はじめに

WordPressのログイン画面から「パスワードをお忘れですか?」をクリックしてもリセットメールが届かないケースは非常に多いです。原因の大半はWordPressのメール送信設定(wp_mail)の問題です。

パスワードリセットの標準手順

1. /wp-login.php?action=lostpassword にアクセス

2. メールアドレスまたはユーザー名を入力

3. 「新しいパスワードを取得」をクリック

4. メールに届くリンクをクリックして新パスワードを設定

リセットメールが届かない原因

  • サーバーのsendmailが設定されていない
  • メールがスパムフォルダに振り分けられている
  • 送信元アドレスがドメインと一致せずSPFに失敗している
  • 登録メールアドレスが変わっている

解決手順

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

まず迷惑メールフォルダを確認します。差出人は wordpress@yourdomain.com です。

ステップ2:SMTPプラグインを導入

wp_mail() はデフォルトでPHPのmail関数を使いますが、多くのサーバーでは送信できません。

// functions.php — SMTPで確実に送信(WP Mail SMTPプラグインが推奨)
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 = 'tls';
    $phpmailer->From       = 'your@gmail.com';
    $phpmailer->FromName   = 'サイト名';
});

ステップ3:wp_mailが動作しているかテスト

# WP-CLIでテストメールを送信
wp eval "wp_mail('test@example.com', 'テスト', 'WP-CLIからのテスト');"

ステップ4:管理者が別ユーザーのパスワードをリセット

別の管理者アカウントが使える場合は、管理画面からリセットできます。

管理画面 → ユーザー → ユーザー名をクリック → 「パスワードを生成」

ステップ5:登録メールアドレスを確認・変更

# ユーザーのメールアドレスを確認
wp user get admin --fields=user_email

# メールアドレスを更新
wp user update admin --user_email=correct@example.com

ステップ6:パスワードリセットリンクを手動生成

# パスワードリセットリンクを手動生成して直接使う
wp eval "
\$user = get_user_by('login', 'admin');
\$key  = get_password_reset_key(\$user);
echo network_site_url('wp-login.php?action=rp&key=' . \$key . '&login=' . rawurlencode(\$user->user_login));
"

注意事項

  • Gmailのアプリパスワードを使う場合は2段階認証を有効にしてから取得してください
  • 本番環境でSMTP認証情報をfunctions.phpに直接書くのは避け、定数で管理してください
  • パスワードリセットリンクの有効期間はデフォルト24時間です

まとめ

パスワードリセットメールが届かない場合は、SMTPプラグイン(WP Mail SMTP)の導入が最も確実な解決策です。急いでいる場合はWP-CLIで wp eval を使ってリセットリンクを直接生成する方法が有効です。

お気軽にご相談ください

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