web-dev-qa-db-ja.com

WordPressから送信されたEメールにはHTMLタグがあります

の代わりに:

Hello,

Thank you dfasdfasdfasdf asdf asdf asdfas dfs

Please, feelasdf asdf asdf 

私のメールボックスに届くEメールは以下のようになります。

<p>Hello,</p> 
<p>&nbsp;</p> 
<p>Thank you dfasdfasdfasdf asdf asdf asdfas dfs</p> 
<p>&nbsp;</p> 
<p>Please, feel asdfads fad f</p> 

だから、私はHTMLがwp_mail()関数のためにオンにされていないと思いますか?メールが正しく届くようにし、<p>タグと<br>タグが正しく解釈されるようにするには、どうやってそれを有効にしますか?

送信ボタンが押されたときにfunctions.phpから私のメールを送るためにこれを使っています:

   $headers = 'From: XXXXXX.com <[email protected]>' . "\r\n";
   $subject = 'Registration from xxxxx.com' . "\r\n"; 
   $message = $result_email_text;
   wp_mail($_POST['admin_email'], $subject, $message, $headers );
3
Derfder

デフォルトのコンテンツタイプは'text/plain'で、これはHTMLの使用を許可しません。 "Content-type:text/html"のようなヘッダーを含めることでEメールのコンテンツタイプを設定できます。

$headers = 'Content-type: text/html;charset=utf-8' . "\r\n";
$headers .= 'From: XXXXXX.com <[email protected]>' . "\r\n";
   $subject = 'Registration from xxxxx.com' . "\r\n"; 
   $message = $result_email_text;
   wp_mail($_POST['admin_email'], $subject, $message, $headers );

あるいはwp_mail_content_typeフィルタを使って設定することもできます。

remove_filter( 'wp_mail_content_type', 'set_html_content_type' );
add_filter( 'wp_mail_content_type', 'set_html_content_type' );
function set_html_content_type() {

    return 'text/html';
}

詳細については、次のリンクを参照してください。 http://codex.wordpress.org/Function_Reference/wp_mail

10
dipali