さて、私は以下の問題を抱えています。 HTML形式でメールを送信しようとしています。私はHTML文字列を返すクラスを作りました、そしてそれはとてもうまくいきます。
私の関数でそのhtml-mailを$ messageとして渡すと、うまくいきます。しかし、HTMLではなくプレーンテキストとして送信されます。
今、私は以下のことを試しました:
1)$headers = array('Content-Type: text/html; charset=UTF-8'); wp_mail($to, $subject, $message, $headers);
2)$headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
3)$headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
4)function wpse27856_set_content_type(){ return "text/html"; } add_filter( 'wp_mail_content_type','wpse27856_set_content_type' );
他に何ができるでしょうか?
これを試してください。
add_filter( 'wp_mail_content_type', 'wpdocs_set_html_mail_content_type' );
$to = '[email protected]';
$subject = 'The subject';
$body = 'The email body content';
$headers = array('Content-Type: text/html; charset=UTF-8');
wp_mail( $to, $subject, $body , $headers);
// Reset content-type to avoid conflicts -- https://core.trac.wordpress.org/ticket/23578
remove_filter( 'wp_mail_content_type', 'wpdocs_set_html_mail_content_type' );
function wpdocs_set_html_mail_content_type() {
return 'text/html';
}
私は個人的にはwp_mail
-関数もphp mail
-関数も使用しません。どちらもあなたがあなたのEメールをあまりコントロールできない。 HTML形式の電子メールを送信する場合は、HTML形式の電子メールを読むことができないユーザーも自分のメッセージを読むことができるように、プレーンテキストのメールを一緒に送信することをお勧めします。
phpmailer
は、非常に優れたEメール送信クラスで、Eメールを細かく制御できます。 HTMLメールにプレーンテキストを追加したり、自分のメールアドレスだけでなく送信者名を設定したりできます。