2026年5月20日

2026年5月20日

WordPressのメール送信元(From)アドレスと送信者名を変更する方法

WordPress が送るメール(パスワードの再設定、新規ユーザーの通知、コメントの通知など)は、何も設定しないと次の差出人で送られます。

  • 送信者名: WordPress
  • アドレス: wordpress@ + サイトのドメイン(「設定」→「一般」のサイトアドレスのホスト名から、先頭の www. を除いたもの。例: https://www.example.com なら wordpress@example.com)

このアドレスのメールボックスが無いと返信が届かず、受信側でも見慣れない差出人として扱われます。ここでは、差出人を自分のドメインのアドレスとサイト名に変える方法を説明します。

差出人を変えるコード

WordPress は送信のたびに、wp_mail_from(アドレス)と wp_mail_from_name(送信者名)の2つのフィルターを通します。ここに関数を登録すると差出人を変えられます。

テーマを変えても効くように、wp-content/mu-plugins/ に次のファイルを置くのがおすすめです(フォルダーが無ければ作ります)。子テーマの functions.php に書いても動きます。

wp-content/mu-plugins/mail-from.php:

<?php
/*
 * Plugin Name: Mail From
 */

// 送信元アドレス: WordPress の初期値(wordpress@...)のときだけ置き換える
add_filter( 'wp_mail_from', function ( $email ) {
    if ( str_starts_with( $email, 'wordpress@' ) ) {
        return 'noreply@example.com';
    }
    return $email;
} );

// 送信者名: 初期値の「WordPress」のときだけサイト名に置き換える
add_filter( 'wp_mail_from_name', function ( $name ) {
    if ( 'WordPress' === $name ) {
        return wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
    }
    return $name;
} );

noreply@example.com は自分のドメインのアドレスに置き換えます。str_starts_with() は PHP 8.0 以降の関数です。

初期値のときだけ置き換える理由

このフィルターは、Contact Form 7 などのプラグインがメールのヘッダーで From を指定した場合にも呼ばれます。無条件に return 'noreply@example.com'; とすると、プラグイン側で設定した差出人まで上書きされます。上のコードのように初期値のときだけ置き換えれば、プラグインの設定はそのまま使われます。すべてのメールを同じ差出人にしたい場合は、条件を外してください。

サイト名をそのまま使わない理由

サイト名は保存時に HTML の特殊文字が変換されるため、A & B というサイト名は A &amp; B として保存されています。get_bloginfo( 'name' ) をそのまま使うと送信者名に &amp; が出るので、WordPress 本体のメール処理と同じく wp_specialchars_decode() で戻しています。

メールの種類ごとに差出人を変える

特定のメールだけ別の差出人にしたい場合は、そのメールのヘッダーに From を追加します。WordPress 6.0 以降は、パスワード再設定メールの内容を retrieve_password_notification_email フィルターで変えられます。

<?php
// パスワード再設定メールだけ差出人を変える(WordPress 6.0 以降)
add_filter( 'retrieve_password_notification_email', function ( $email ) {
    $email['headers'] = 'From: Example Security <security@example.com>';
    return $email;
} );

上の「初期値のときだけ置き換える」コードと組み合わせると、このメールは security@example.com から、それ以外は noreply@example.com から送られます。

retrieve_password_message フィルターの中で doing_action() を使って判定する方法は動きません。このフィルターはメール本文を作る段階で実行され、wp_mail_from が呼ばれる時点では終わっているためです。

Return-Path(エンベロープの送信者)も合わせる

メールには、画面に表示される From とは別に、配送に使う送信者アドレス(エンベロープの送信者。受信したメールでは Return-Path に記録される)があります。SPF が確認するのはこちらのドメインです。

WordPress は From だけを設定し、エンベロープの送信者は設定しません。PHP の mail() で送っているサーバーでは、ユーザー名@サーバーのホスト名 のようなアドレスになることがあり、From のドメインと一致しません。合わせる場合は、phpmailer_init アクションで PHPMailer の Sender に From と同じアドレスを入れます。

<?php
// エンベロープの送信者(Return-Path)を From と同じにする
add_action( 'phpmailer_init', function ( $phpmailer ) {
    if ( empty( $phpmailer->Sender ) ) {
        $phpmailer->Sender = $phpmailer->From;
    }
} );

SMTP プラグインを使っている場合は、プラグインが同様の設定をしていることが多いので、先にプラグインの設定を確認してください。

SPF・DKIM を設定する

差出人を自分のドメインに変えたら、そのドメインで送信の認証を設定します。Google の「メール送信者のガイドライン」(2026年11月時点)では、Gmail 宛てに送るすべての送信者に SPF または DKIM の設定を求めています(1日 5,000 通を超える送信者は SPF と DKIM の両方と DMARC が必要です)。

SPF は、送信に使うサーバーやサービスを DNS の TXT レコードに書きます。

example.com.  IN  TXT  "v=spf1 ip4:203.0.113.10 include:_spf.example-mail.net ~all"
  • ip4: には、WordPress のサーバーから直接送る場合のサーバーの IP アドレスを書きます。
  • include: には、外部の SMTP サービスやサーバー会社が案内している値を書きます(上の _spf.example-mail.net は例です)。
  • SPF レコードは1つのドメインに1つだけにします。複数あると SPF の判定がエラーになります。

DKIM の設定方法は、メールを送るサーバーやサービスによって違います。サーバー会社や SMTP サービスの案内に従ってください。

SMTP で送っている場合の注意

  • SMTP サーバーによっては、ログインしたアカウントと違うアドレスを From にすると送信を拒否したり、From をアカウントのアドレスに置き換えたりします。Gmail・Google Workspace の SMTP では、そのアカウントで送信元として登録したアドレスしか使えません。
  • SMTP プラグインには差出人を指定する設定があり、プラグインの設定が優先される場合があります。コードとプラグインの両方で設定して食い違わないようにします。

テスト送信して確かめる

WP-CLI が使える場合は、次のコマンドで実際にメールを送ります。you@example.com は自分が受け取れるアドレスに置き換えます。

wp eval 'var_dump( wp_mail( "you@example.com", "From test", "This is a test." ) );'

bool(true) と表示されれば、WordPress から送信処理に渡せています(届いたかどうかは別です)。bool(false) の場合は、送信に失敗しています。原因は wp_mail_failed アクションで確認できます。

<?php
// 送信に失敗したときの理由を debug.log に記録する(WP_DEBUG_LOG を有効にしておく)
add_action( 'wp_mail_failed', function ( $error ) {
    error_log( 'wp_mail_failed: ' . $error->get_error_message() );
} );

届いたメールでは、差出人の表示のほか、メールのヘッダーを開いて次を確認します(Gmail では、メールのメニューの「メッセージのソースを表示」)。

ヘッダー 確認すること
From 変更した送信者名とアドレスになっているか
Return-Path From と同じドメインか
Authentication-Results spf=pass、dkim=pass になっているか

まとめ

  • WordPress の初期の差出人は WordPress <wordpress@ドメイン> です。
  • wp_mail_from と wp_mail_from_name で変更できます。初期値のときだけ置き換えると、プラグインが指定した差出人を壊しません。
  • SPF のために、phpmailer_init で Return-Path を From に合わせ、送信元のドメインに SPF・DKIM を設定します。
  • 変更後はテスト送信して、ヘッダーの From・Return-Path・Authentication-Results を確認します。

メールが届かない場合の SMTP の設定は WordPressのSMTP設定、DNS の確認は SPF・DKIM・DMARCの確認方法 を参考にしてください。

お気軽にご相談ください

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