Page 1 sur 1

Souci retour à la ligne involontaire dans les emails html avec mail()

Posté : 22 août 2015, 18:16
par tgv2000fr
Bonjour à tous,


Je suis confronté à un souci lorque j'envoie des mail html avec mail(), j'ai des retour à la ligne en fonction des retour à la ligne dans le code html :

Voici mon code :
$titre="Nouveau client surmon site.com";
            $tete.="From:[email protected]\n";
            $tete.= "Content-Type: text/html; charset=UTF-8";
            $corps.='<p>Un nouveau client s\'est inscrit sur le site :</p>
                     <table border="0">
                     <tbody>
                     <tr>
                     <td>Pr&eacute;nom:</td>
                     <td>'.$prenom.'</td>
                     </tr>
                     <tr>
                     <td>Nom:</td>
                     <td>'.$nom.'</td>
                     </tr>
                     <tr>
                     <td>Date d\'insctiption:</td>
                     <td>'.date('d/m/Y', $info_compte['date_inscription']).'</td>
                     </tr>
                     </tbody>
                     </table>';
		
                mail('[email protected]', $titre, nl2br(stripslashes($corps)), $tete);
Du coup à la réception de mon mail j'ai un massage comme ceci :
<!-- Début du mail --> 




<!-- ici un tas de retour à la ligne (propositionnel à la longueur de mon code --> 





Et ici mon contenu
Tandis que si je fait ça :
$titre="Nouveau client sur Jeux-de-pots.com &agrave; valider";
            $tete.="From:[email protected]\n";
            $tete.= "Content-Type: text/html; charset=UTF-8";
            $corps.='<p>Un nouveau client s\'est inscrit sur le site :</p>';
                     $corps.='<table border="0">';
                     $corps.='<tbody>';
                     $corps.='<tr>';
                     $corps.='<td>Pr&eacute;nom:</td>';
                     $corps.='<td>'.$prenom.'</td>';
                    //ect....
		
                mail('[email protected]', $titre, nl2br(stripslashes($corps)), $tete);
Là je n'est pas de souci.

J'en viens à ma question, y a t il un fonction pour éviter à avoir à faire une concaténation à chaque ligne ?

Re: Souci retour à la ligne involontaire dans les emails html avec mail()

Posté : 22 août 2015, 19:31
par Ryle
Bonjour,

La fonction nl2br que tu utilises lors de l'envoi du mail ajoute la balise <br /> à chaque fois qu'il rencontre un retour chariot. Si dans ta chaine tu as des retours à la ligne (comme dans ton premier code) php ajoute un <br /> pour chaque. Dans ton second code, il n'y a pas de retour à la ligne dans la chaine puisque tu constitues celle-ci en concatenant des lignes sans retour chariot ;)

Re: Souci retour à la ligne involontaire dans les emails html avec mail()

Posté : 23 août 2015, 11:29
par tgv2000fr
Super merci Ryle ;)