WordPress管理者メールアドレスの承認メールが届かない原因と対処法|functions.phpやSMTP設定での解決手順

WordPressでサイトの管理者メールアドレスを変更しようとすると、「新しいメールアドレスの確認待ちです」と表示され、変更先のメールアドレスに届く確認メール内の承認リンクをクリックするまで変更が完了しない仕様になっています。

しかし、「何度変更ボタンを押しても承認メールが届かない」「迷惑メールフォルダを探しても見当たらない」というトラブルに直面するケースは少なくありません。

確認メールが届かない状態のまま放置すると、パスワードリセットやプラグインのセキュリティ通知など、サイト運営に関わる重要なお知らせを受け取れなくなってしまいます。

この記事では、承認メールが届かない原因を整理したうえで、「functions.phpにコードを追記して承認をスキップする方法」「phpMyAdminからデータベースを直接変更する手順」、そして今後の通知漏れを防ぐ「SMTP設定による根本解決策」を分かりやすく解説します。

なぜ管理者メールアドレスの承認メールが届かないのか?

WordPressの管理画面からアドレス変更を行った際、確認メールが届かないトラブルには主に3つの要因が考えられます。

メールが届かない主な要因

  • 送信元認証の不整合(SPF / DKIM / DMARC):WordPress標準のPHP内部関数(wp_mail)から送信されたメールは、送信ドメイン認証が通らず、受信側サーバー(GmailやYahoo!メールなど)によって自動的にスパム判定・破棄されるケースが急増しています。
  • サーバー側のメール送信制限:利用しているレンタルサーバーやホスティング環境によっては、スパム対策としてPHPからの外部メール送信に厳しい制限がかけられていることがあります。
  • 入力ミスや迷惑メールフォルダへの誤振り分け:変更先アドレスのスペルミスや、受信トレイ以外のプロモーションタブ、迷惑メールフォルダへの自動分類も確認が必要です。

特に近年はセキュリティ強化により、送信元認証(SPFやDMARC)が整っていないサーバーからの自動送信メールは、受信トレイに届く前に遮断されるケースが一般的になっています。そのため、単に待つだけでは解決しないケースが多いのが現状です。

管理者メールアドレス変更時の3大アプローチ

承認メールが届かない状況を解決する方法として、緊急度や目的に応じた3つのアプローチがあります。

管理者メールアドレス変更時の3大対処アプローチ

functions.php・phpMyAdmin・SMTP設定によるアプローチの全体像

最も素早く手軽に済ませたい場合は「functions.phpへのコード追記」、データベースに直接アクセスできる環境であれば「phpMyAdminでの変更」、そして問い合わせフォームの不達なども含めて根本的に改善したい場合は「SMTP設定」が適しています。

functions.phpにコードを追記して承認をスキップする方法

WordPress 4.9以降には、管理者メールアドレスの変更時に確認メールの送信と承認プロセスを制御するための専用フィルターフックが用意されています。

このフィルターフックを利用すると、確認メールを送信せずに管理画面の保存操作だけで即時にメールアドレスを更新できます。

追記するPHPコード

利用中のテーマの「functions.php」(または「Code Snippets」などのコード管理プラグイン)に、以下のコードを追記します。

// 管理者メールアドレス変更時の承認確認メール送信をスキップ
add_filter( 'send_new_admin_email_confirmation', '__return_false' );

操作手順

  1. WordPress管理画面から「外観 > テーマファイルエディター」を開き、使用中の子テーマの「functions.php」を選択します(FTPソフトやファイルマネージャーからの編集も可能です)。
  2. 上記コードをファイル末尾に追記し、「ファイルを更新」をクリックします。
  3. 管理画面の「設定 > 一般」を開きます。
  4. 「管理者メールアドレス」の欄に新しいアドレスを入力し、ページ最下部の「変更を保存」をクリックします。
  5. 「承認待ち」の保留表示が出ることなく、入力したメールアドレスが即座に反映されます。

変更完了後のワンポイント

メールアドレスの変更が確認できたら、追記した上記のコードは削除(または無効化)して元の状態に戻しておくことを推奨します。コードを残したままでも動作上の支障はありませんが、普段は誤操作防止のために標準の承認フローを維持しておくと安心です。

phpMyAdminからデータベースを直接変更する手順

レンタルサーバーの管理パネル等からデータベース管理ツール(phpMyAdmin)にアクセスできる場合は、データベース上の設定値を直接編集してメールアドレスを更新できます。

admin_emailの値を書き換える手順

  1. レンタルサーバーの管理画面から「phpMyAdmin」にログインします。
  2. 該当サイトのWordPressデータベースを選択し、オプションテーブル(標準では wp_options)を開きます。
  3. 検索タブで、option_nameadmin_email と入力して検索を実行します。
  4. 検索結果に表示された admin_email の「編集」をクリックし、option_value を新しいメールアドレスに書き換えて「実行」をクリックします。

保留中の「new_admin_email」レコードを削除する

管理画面から変更を試みた形跡がある場合、データベース内に一時保存用として new_admin_email というレコードが作成されていることがあります。

同じく wp_options テーブル内で option_namenew_admin_email となっている行を探し、その行を「削除」することで、管理画面上に残っていた「承認待ち」のメッセージをきれいに消去できます。

今後のメール不達を防ぐSMTP設定による根本解決

管理者メールアドレスの確認メールが届かないということは、「サイトからの問い合わせメール」「パスワード再発行メール」「重要なお知らせ通知」も同様に相手へ届いていない可能性が高いことを示しています。

WordPress標準のPHPメール送信に頼るのではなく、信頼性の高いメールサーバー経由で配信する「SMTP設定」を行うことが根本的な解決策となります。

WP Mail SMTPプラグインの導入手順

  1. WordPress管理画面「プラグイン > 新規追加」から「WP Mail SMTP」を検索してインストール・有効化します。
  2. 設定画面で、利用しているメールサービス(独自ドメインのメールサーバー、SendGrid、Gmailなど)を選択します。
  3. SMTPホスト名、ポート番号、暗号化方式(TLS/SSL)、SMTP認証情報(ユーザー名とパスワード)を入力して保存します。
  4. プラグイン内の「メールテスト」タブからテストメールを送信し、無事に受信できることを確認します。

SMTP設定が完了すれば、SPFやDKIMの認証を通過した安全なメールとして送信されるようになるため、管理者確認メールはもちろん、読者からの問い合わせメールの取りこぼしも確実に防ぐことができます。

ブラウザから手軽に変更したい場合はoptions.phpも有効

コードの編集やデータベースの操作に不安がある場合は、WordPressに標準で備わっている隠し設定画面(options.php)をブラウザから直接開いて修正する方法も便利です。

この方法では、管理画面のURLを一部書き換えるだけで、すべてのオプション設定を一覧表示し、管理者メールアドレスを直接更新できます。

options.phpを用いた変更手順の詳細

ブラウザ上で手軽に完結させたい方は、別記事「【WordPress】管理者メールアドレスが「承認待ち」で変更できないときの対処法」にて、画面のURLを書き換えてadmin_emailを直接保存する具体的なステップをまとめていますので、あわせて参考にしてください。

まとめ:状況に応じた最適な方法を選択する

WordPressで管理者メールアドレスの承認メールが届かないトラブルは、原因を把握して適切な手順を踏めば確実に解決できます。

対処アプローチ おすすめの状況 主な特徴
functions.phpへのコード追記 管理画面内で素早く完結させたいとき フィルターフックで確認メールを自動スキップ
phpMyAdminでの直接更新 サーバー管理画面にアクセスできるとき データベースのadmin_emailを即時書き換え
WP Mail SMTPの導入 今後の通知漏れも防ぎたいとき メール送信機能を正規の認証付きSMTPで根本解決
options.phpの活用 手軽にブラウザのみで修正したいとき 内部設定画面から直接変更を保存

まずは「functions.phpのフィルターフック」や「options.php」で急ぎの変更を完了させ、その後サイトの信頼性向上のために「WP Mail SMTP」を導入しておくのが最も堅実な運用方法です。


eguchi.netをもっと見る

購読すると最新の投稿がメールで送信されます。