WordPressを使っているといろいろなシーンで送信されるメール、送信者名が「WordPress」、送信元メールアドレスが「wordpress@ドメイン名」になっているのを不思議に思ったことありませんか?
これはWordPressが通常のメール送信に使うSMTPサーバー経由でなくてもメールが送信できる仕組み(詳細は割愛)を使っているためで、管理者宛のメールだけであれば自身に届くだけなのでそれほど気にする必要はないでしょう。
でも、自分以外の人に届くメールの送信者や送信元メールアドレスがそうなっていたら、やはり違和感がありますし、誰?となってしまうかも知れません。
そこで本ページでは、WordPress標準のメール送信機能を使いつつ、送信者名をサイトの名前に、送信元メールアドレスを「設定」にある管理者メールアドレスにする方法を紹介します。
本ページ掲載のコードを使用するときは
本ページで掲載しているコードは、以下に了承した上で使用ください
- コードは商用・非商用問わず自由に使っていただいて構いませんが、コード追加による不具合やトラブルが発生しても当方では一切責任を負いません
- コードは有効化しているテーマのfunctions.php、style.cssなどへ追加することで機能します。それらのファイルへの変更を行うことに不安のある方は使用しないでください
- コードは本ページの公開日時点で私の環境において動作したものです。WordPressバージョン他環境の違いによって動作しないことがあります
- コードは、セキュリティ、コードの正確さなどにおいて完全なものではありません。中には紹介するコードを簡略化するために省略している部分があるものもありますので、ご自身でコードを十分に検証し、必要な部分の編集を行った上で使用するようにしてください
- 掲載しているのは参考コードです。自身の環境に合わせるための編集はご自身で対応いただく必要があります(コメント欄等から質問いただいても基本回答は致しません)
- 掲載しているコードの転載を禁じます(SNSで紹介いただいたり、本ページへのリンクを張っていただくことは大歓迎です)
メールの送信者(差出人名)と送信元メールアドレスを変更するコード
目的に応じてそれぞれのコードを追加するだけです。
送信元メールアドレスを変更するコード
/* wp_mailで送信元メールアドレスを管理者メールアドレスへ変更 */
function pwcn_mail_from_address( $from_email ){
$admin_email = get_option( 'admin_email' );
return $admin_email;
}
add_filter( 'wp_mail_from', 'pwcn_mail_from_address' );
送信者(差出人名)を変更するコード
/* wp_mailで送信者をサイト名へ変更 */
function pwcn_mail_from_name( $from_name ){
$site_title = get_bloginfo( 'name' );
return $site_title;
}
add_filter( 'wp_mail_from_name', 'pwcn_mail_from_name' );
たったこれだけのカスタムコードで変更できます。
メールが届かない、迷惑メールとして扱われることが多いときは
WordPressのメール送信の仕組みは、通常のメール送信で使われるメール送信サーバー(SMTPサーバー)が、レンタルサーバーに備わっていなくてもメールが送れるよう、PHPの仕組みを使うようになっています。
これにより、レンタルサーバー側でこの仕組みが使えないようになっていない限り、WordPressからいろいろな通知が届くようになっている反面、受け取り側(メールの受信サーバー側)で、ユーザー名とパスワードなどを認証して送信するSMTPサーバーを通じて送られているメールではないと判断されることで、メールが拒否されたり、迷惑メールと判定されてしまったりするのです。
契約しているサーバーにメールホスティングの機能があれば(メールアドレスの追加や削除ができるサーバーであれば)、SMTPサーバーを経由してより確実にメールを届けるようにした方がいいでしょう。
それなりにメジャーなサーバーであれば、メールホスティング機能は備わっていると思います
本ページと主旨は異なりますが、以下のページでは、WordPressのメール送信の仕組みをプラグインを使わずにSMTP経由で送信するようにする方法を紹介していますので、併せてご覧ください。
コメントを残す