回答:
こんにちは@helenyhou:
パラメータではなく、ヘッダーを設定できます。WordPressの使い方「フック」とあなたがされている必要があるフック'wp_mail_from'
と'wp_mail_from_name'
フック。
メールアドレスに使用するときfunctions.php
に"From:"
ヘッダーを変更するためにテーマのファイルに追加できるフックは次のとおりです。wp_mail()
Helen Hou-Sandi <helenyhou@example.com>
add_filter('wp_mail_from','yoursite_wp_mail_from');
function yoursite_wp_mail_from($content_type) {
return 'helenyhou@example.com';
}
add_filter('wp_mail_from_name','yoursite_wp_mail_from_name');
function yoursite_wp_mail_from_name($name) {
return 'Helen Hou-Sandi';
}
wp_mail()
削除する必要があります。ヘッダーの設定が機能する理由については、他のユースケースが何であるかはわかりませんが、wp_mail()
そのように機能するかどうかは驚きです。
From: "Your Name" <youremail@example.com>\r\n
ヘッダーで形式を使用している場合、問題は発生しないはずです(wp_mail関数をオーバーライドするプラグインがインストールされている場合を除く)。
ただし、マイクが言ったように、これらのフィルターで最終的な値をフィルター処理することも、このプラグインをインストールすることもできます。
wp_mailで使用する名前と電子メールを決定するオプション設定を提供します。
古い質問を復活させてすみませんが、次のようにヘッダーで設定する方が良いとは言えません:
$subject = "MyPlugin: Alert (".get_bloginfo('wpurl').")";
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=".get_bloginfo('charset')."" . "\r\n";
$headers .= "From: MyPlugin <".$this->settings['from_address'].">" . "\r\n";
wp_mail($this->settings['notify_address'], $subject, $alertMessage, $headers);
そうすれば、フィルターを使用してwp_mail()の後に削除することを心配する必要はありません。
site_url()
代わりに使用する必要がありますget_bloginfo('wpurl')
get_bloginfo('wpurl')
。これはsite_url()
すでに返されます。get_bloginfo('home')
およびget_bloginfo('siteurl')
廃止されました。developer.wordpress.org/reference/functions/get_bloginfo
ちょっとしたハックですが、Reply To
ヘッダータグを使用することもできます。
$headers = 'Reply-To: "Aaren A. Aarenson" <aaron@somemail.com>';
残念なことに、これにより電子メールアドレスが差出人リストに追加され、返信すると、wp_mail_from
フィルターで構成されたアドレスを手動で削除する必要があります。
同じ問題がありました。私にとっては、ホスティングプロバイダー(BlueHost)がfromフィールドの変更を妨げていることがわかりました。ここではhttps://my.bluehost.com/cgi/help/206で説明しています。
メールをcPanelメールボックスに追加することで問題を修正しました。