web-dev-qa-db-ja.com

メールはHTMLで送信されません

さて、私は以下の問題を抱えています。 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' );

他に何ができるでしょうか?

3
Refilon

これを試してください。

  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';
    }
1
WisdmLabs

私は個人的にはwp_mail-関数もphp mail-関数も使用しません。どちらもあなたがあなたのEメールをあまりコントロールできない。 HTML形式の電子メールを送信する場合は、HTML形式の電子メールを読むことができないユーザーも自分のメッセージを読むことができるように、プレーンテキストのメールを一緒に送信することをお勧めします。

phpmailerは、非常に優れたEメール送信クラスで、Eメールを細かく制御できます。 HTMLメールにプレーンテキストを追加したり、自分のメールアドレスだけでなく送信者名を設定したりできます。

0
Sam