Voici un exemple type de code que nous utilisons pour envoyer des mails multipart avec php
$message = “–$separator\r\n”;
$message .= “Content-Type: text/plain; charset=\”utf-8\”\r\n”;
$message .= “Content-Transfer-Encoding:quoted-printable\r\n\r\n”;
$message .= $texte_nohtml.”\r\n\r\n”;
$message .= “–$separator\r\n”;
$message .= “Content-Type: text/html; charset=\”utf-8\”\r\n”;
$message .= “Content-Transfer-Encoding:quoted-printable\r\n\r\n”;
$message .= $texte_html.”\r\n\r\n”;
Nous envoyons le mail en type text/plain et text/html.
Jusqu’ici nous envoyions le text/html en premier puis le text/plain en deuxième, mon raisonnement étant qu’un navigateur était capable de switcher tout seul pour aller récupérer le type de contenu qui lui convient le mieux (c’est ce que semble faire Outlook). Or je recevais mes mails sur Thunderbird au format test seul…
En fouillant un peu je me suis aperçu qu’en fait Thunderbird fonctionnait bêtement… Il descend de plus en plus bas et tant qu’il peut afficher il affiche. Moralité si on met le texte html d’abord il voit qu’il peut l’afficher, il descend, il trouve le texte seul, il voit qu’il peut l’afficher, y’a plus rien en dessous donc il l’affiche !
En inversant les 2, en mettant le texte html EN DESSOUS du texte seul on parvient à obtenir ce qu’on veut malgré le comportement idiot de Thunderbird.