J'ai une interface pour envoyer des courriels via SMTP
(j'utilise le plug-in Postman SMTP
).
Je collecte les messages dans la base de données que j'ai envoyée à quelqu'un en fonction des résultats d'une requête SQL.
Dans la base de données, j'ai stocké les messages en utilisant le caractère
pour les sauts de ligne.
Voici le code (je remplace les adresses e-mail par xxx, mais évidemment j'utilise l'adresse e-mail de mon client dans la pièce réelle):
$subject = $res->subject;
$message = utf8_encode( $msg );
$to = $res->url ;
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
$headers .= 'From: XXX <[email protected]>' . "\r\n" .
'Reply-To: [email protected]' . "\r\n";
$sent = wp_mail($to, $subject , $message , $headers);
Tout fonctionne (je reçois le bon courriel avec le bon codage), mais tout est envoyé sur une seule ligne (quand il devrait y avoir un saut de ligne à chaque fois qu'il y a un
dans la base de données). Bizarrement, il n'y a pas dans l'e-mail, ils sont simplement supprimés du message.
J'ai aussi essayé d'ajouter les lignes suivantes (sur des tests séparés, évidemment):
$message = str_replace(' ', "\r\n", $message);
$message = str_replace(' ', '<br />', $message);
Mais j'obtiens les mêmes résultats.
Pourriez-vous s'il vous plaît m'aider à résoudre ce problème?
Modifiez la ligne qui lit $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
en $headers .= 'Content-Type: text/html; charset=ISO-8859-1";
, puis utilisez <br />
pour les sauts de ligne.