wp_mail( $to, $subject, $message, $headers )
を使う場合(もちろん値を適切に設定した場合)、Eメールは差出人名と私が見つけることができる場所に設定されていないEメール(PHPやApacheの設定でさえも)で送られます。ただし、代わりにmail( $to, $subject, $message, $headers )
を使用しても問題ありません。これを引き起こすためにwp_mail()
で何が起こったのでしょうか?
こんにちは @helenyhou:
あなたは単にパラメータではなく、ヘッダを設定することができます。 WordPressは "hooks" を使い、あなたが必要とするフックは'wp_mail_from'
と'wp_mail_from_name'
フックです。
wp_mail()
を電子メールアドレスfunctions.php
に使用するときに"From:"
ヘッダーを修正するためにあなたがあなたのテーマのHelen Hou-Sandi <[email protected]>
ファイルに追加するかもしれないフックはここにあります:
add_filter('wp_mail_from','yoursite_wp_mail_from');
function yoursite_wp_mail_from($content_type) {
return '[email protected]';
}
add_filter('wp_mail_from_name','yoursite_wp_mail_from_name');
function yoursite_wp_mail_from_name($name) {
return 'Helen Hou-Sandi';
}
あなたのヘッダでFrom: "Your Name" <[email protected]>\r\n
フォーマットを使用しているのであれば、問題ないはずです(wp_mail関数を上書きするプラグインがインストールされていない限り)。
しかし、マイクが言ったように、あなたはそれらのフィルタで最終的な値をフィルタすることができます、あるいはあなたはただこのプラグインをインストールすることができます:
Wp_mailで使用する名前とEメールを決定するためのオプション設定が表示されます。
ちょっとしたハックですが、Reply To
ヘッダータグを使うこともできます。
$headers = 'Reply-To: "Aaren A. Aarenson" <[email protected]>';
残念ながら、この は をFromリストに追加し、返信するとwp_mail_from
フィルタで設定されたアドレスを手動で削除しなければならなくなります。
古い質問を復活させて申し訳ありませんが、次のようにヘッダーを介して設定することをお勧めします。
$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()の後に削除することを心配する必要はありません。
私は同じ問題を抱えていました。私にとっては、ホスティングプロバイダ(BlueHost)がfromフィールドの変更を妨げていることがわかりました。ここで彼らはそれを説明します https://my.bluehost.com/cgi/help/206 。
私は彼らが言うようにcPanelメールボックスに電子メールを追加することで問題を解決しました。