web-dev-qa-db-fra.com

Les courriels envoyés depuis WordPress ont des balises HTML

Au lieu de:

Hello,

Thank you dfasdfasdfasdf asdf asdf asdfas dfs

Please, feelasdf asdf asdf 

Le courrier électronique qui arrive dans ma boîte aux lettres se présente comme suit:

<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> 

Donc, je suppose que le code HTML n’est pas activé pour la fonction wp_mail()? Comment pouvez-vous l'activer afin que le courrier arrive comme il se doit et que les balises <p> et <br> soient interprétées correctement?

J'utilise ceci pour envoyer mon courrier depuis functions.php lorsque le bouton d'envoi est enfoncé:

   $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

Le type de contenu par défaut est 'text/plain', ce qui n'autorise pas l'utilisation de HTML. Vous pouvez définir le type de contenu de l'e-mail en incluant un en-tête du type "Content-type: text/html".

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

Ou vous pouvez le définir en utilisant le filtre 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';
}

Pour plus de détails, voir le lien suivant: http://codex.wordpress.org/Function_Reference/wp_mail

10
dipali