WordPressのローカル環境やステージング環境を構築していると、管理者メールアドレスを一時的に変更したい場面があります。
たとえば、ローカル環境から誤ってクライアントへメールが送信されないようにしたい場合や、ステージング環境で通知先を自分のメールアドレスに切り替えたい場合です。
ただし、WordPressの管理画面から通常どおり変更しようとすると、確認メールが送信されるため、環境によっては都合が悪いことがあります。
この記事では、WordPress管理者メールアドレスを確認なしで変更したいときに考えられる方法と、実務上おすすめできる手段について整理します。
このような場面で使われます
- ローカル環境で開発中に、クライアント宛の通知メールが飛ばないようにしたい場合
- ステージング環境でメール通知先を開発者側に切り替えたい場合
- 確認メールを受信できない環境で、管理者メールアドレスを変更したい場合
まず知っておきたい仕様
WordPress 4.9以降、管理者メールアドレスを変更しようとすると、新しいメールアドレス宛に確認メールが送信され、そのリンクをクリックしない限り変更が確定しない仕様になっています。
さらに、セキュリティ上の理由から、元の管理者メールアドレス宛にも「変更リクエストが行われた」という通知が送信されます。
つまり、通常の管理画面からメールアドレスを変更すると、確認メールの送信を避けることはできません。
管理画面から変更する方法
最も一般的なのは、管理画面の「設定」→「一般」から管理者メールアドレスを変更する方法です。
この方法は安全で正規の手順ですが、確認メールの送信が必ず発生するため、今回のように「メールを飛ばしたくない」ケースには向いていません。
wp-admin/options.php から変更する方法はどうか
少し詳しい方の中には、wp-admin/options.php から admin_email の値を変更する方法を知っている方もいると思います。
この画面は、WordPressの各種オプションを直接編集できる上級者向けの画面です。
一見すると、ここから変更すれば確認プロセスを回避できそうに見えますが、実際に検証したところ、options.php 経由で変更した場合でも管理者宛にメールが送信されました。
つまり、options.php は「確認なしで安全に変更する方法」とは言えません。
また、この画面では多くの設定値が一覧表示されるため、誤って siteurl や home など重要な値を変更してしまうと、サイトの表示やログインに影響が出るおそれがあります。
そのため、options.php は知識がある方が慎重に扱う画面ではありますが、今回の目的に対する確実な方法ではないと考えた方がよいです。
確認なしで変更したいなら、データベースから直接変更する
確認メールを完全に回避したい場合は、データベースの wp_options テーブルにある admin_email を直接変更する方法が最も確実です。
この方法では、WordPressの通常の設定変更フローを通さないため、確認プロセスやメール送信フローを経由せずに値を書き換えることができます。
変更対象は、通常は次のレコードです。
|
1 2 |
テーブル: wp_options option_name: admin_email |
SQLで変更する場合の例は以下のようになります。
|
1 2 3 |
UPDATE wp_options SET option_value = 'your-mail@example.com' WHERE option_name = 'admin_email'; |
ただし、テーブルプレフィックスを変更している場合は、wp_options ではなく実際のプレフィックスに合わせたテーブル名を使ってください。
この方法のメリット
- 確認メールを挟まずに変更できる
- クライアント宛の通知を避けやすい
- ローカル環境やステージング環境での一時的な切り替えに向いている
この方法の注意点
もちろん、データベースを直接変更する方法には注意点もあります。
- phpMyAdminやAdminerなど、データベース操作の知識が必要
- 誤ったレコードを編集すると不具合の原因になる
- 作業前にバックアップを取っておくのが安全
そのため、非エンジニアの方には少しハードルが高い方法かもしれません。
ただ、ローカル環境や検証環境を扱う機会がある方にとっては、知っておくと非常に役立つ実務テクニックです。
補足:Local などではメール確認ができる場合もある
なお、Local(by Flywheel)などのローカル開発環境では、標準で Mailpit が用意されており、ローカル上で送信メールを確認できる場合があります。
そのため、環境によっては必ずしも管理者メールアドレスを変更しなくても運用できることがあります。
一方で、すべてのローカル環境にそのような仕組みがあるわけではないため、メール確認ができない構築環境では、今回のような管理者メールアドレス変更のニーズが出てきます。
結論
WordPress管理者メールアドレスを確認なしで変更したい場合、最も確実なのはデータベースの admin_email を直接変更する方法です。
管理画面からの変更は確認メールが送信されますし、options.php も実際に検証するとメール送信が発生しました。
そのため、「確認メールを飛ばさずに確実に変更したい」という目的に対しては、DB直接変更が最も現実的です。
ローカル環境やステージング環境でクライアントへの誤送信を避けたい場合には、覚えておくと役立つ方法だと思います。