Bonjour
Je suis face à un pb que je n arrive pas à résoudre tant il est surprenant, enfin pour moi.
J utilise la fonction mail ci après pour envoyer mes messages en HTML et au format Text.
Quand je les lis avec le webmail de mon hébergeur (hostinger) le titre a un problème d'encodage le mot Français apparait ainsi : Français mais le corps qui contient le même mot n'a aucun problème d'affichage et Français apparait bien tel qu'il doit être.
Quand je le lis avec Thunderbird là dans la liste des messages le titre n a pas le bon encodage et apparait ainsi Fran?ais alors que sur le panneau de visualisation du message, le titre est correct.
Le texte quant à lui est toujours bien encodé que ce soit en html ou en text.
De plus mes sauts de ligne "\n" ne sont pas pris en compte dans mon message texte.
Le sujet, et messages texte et html sont construit sur une même page, les données en Post extraites d un même formulaire...
Pourriez vous m expliquer s il vous plait pourquoi et comment y remédier ?
Ma fonction mail :
merci pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 function SendMail($from, $replyTo, $to, $sujet, $txt_msg, $html_msg) { $rn = "\n"; $delimitation = uniqid(); $headers = 'From: ' . $from . $rn; $headers .= 'Reply-to: ' . $replyTo . $rn; $headers .= 'Content-Type: multipart/alternative;' . $rn . ' boundary="' . $delimitation . '"' . $rn . $rn; $message = ""; $message .= "--" . $delimitation . $rn; $message .= "Content-Type: text/plain; charset=utf-8" . $rn; $message .= "Content-Transfer-Encoding: 8bit" . $rn . $rn; $message .= $txt_msg; $message .= $rn . $rn . "--" . $delimitation . $rn; $message .= "Content-Type: text/html; charset=utf-8" . $rn; $message .= "Content-Transfer-Encoding: 8bit;" . $rn . $rn; $message .= $html_msg; $message .= $rn . "--" . $delimitation . "--"; return mail($to, $sujet, $message, $headers); }
Partager