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 を使ってリセットリンクを直接生成する方法が有効です。