web-dev-qa-db-fra.com

Le courrier ne sera pas envoyé en HTML

Ok, j'ai le problème suivant. J'essaie d'envoyer un courrier au format HTML. J'ai créé une classe qui retourne une chaîne HTML, et cela fonctionne très bien.

Lorsque je transmets ce message HTML en tant que $ message dans ma fonction, fonctionne également. Mais il n'enverra pas en HTML, mais en texte brut.

Maintenant, j'ai essayé les choses suivantes:

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' );

Quoi d'autre cela pourrait-il être?

3
Refilon

Essaye celui-là.

  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

Personnellement, je n'utiliserais pas la fonction wp_mail-, ni la fonction php mail-. Les deux ne vous donnent pas beaucoup de contrôle sur votre email. Si vous souhaitez envoyer des e-mails HTML, il est conseillé d'envoyer un e-mail en texte brut afin que les utilisateurs incapables de lire des e-mails HTML puissent également lire votre message.

Jetez un coup d'œil sur phpmailer, c'est un très bon cours d'envoi d'e-mails qui vous donne un contrôle important sur l'email. Vous pouvez ajouter du texte brut à un e-mail HTML, définir un nom d'expéditeur au lieu de simplement avoir votre adresse e-mail, etc.

0
Sam