zezette "Allez hop, au revoir" | Finalement, j'ai trouvé une solution :
Code :
- function envoimailhtml($a, $de, $detxt, $cc, $cci, $objet, $message)
- {
- //Préférences pour l'encodage mime
- $preferences = array(
- "input-charset" => "UTF-8",
- "output-charset" => "UTF-8",
- "line-length" => 255,
- "line-break-chars" => "",
- "scheme" => "Q" );
- $headers="MIME-Version: 1.0\r\n";
- $headers.="Content-type: text/html; charset=utf-8\r\n";
- $headers.=iconv_mime_encode("From","$detxt",$preferences)."<$de>\r\n";
- if($cc)
- $headers.="Cc: $cc\r\n";
- if($cci)
- $headers.="Bcc: $cci\r\n";
- $objet=substr(iconv_mime_encode("","$objet",$preferences)."\r\n",1); //Il faut enlever le :
- if(!mail($a,$objet,$message,$headers,"-f".$de))
- return 0;
- else
- return 1;
- }
|
Il peut maintenant y avoir n'importe quoi dans l'objet ou dans le nom de l'expéditeur, ça passe.
Mais dois-je aussi encoder (avec iconv_mime_encode) le contenu du mail (la variable $message) ?
Un "é", un "è" ou un "€" dans le texte s'affiche correctement sur tous les clients de messagerie que j'ai testé... (Outlook, Gmail, Hotmail, ...) sauf dans un truc appellé Groupwise où un "é" s'affiche "é" comme si c'était de l'ISO-8859-1 dans lequel on avait tapé un "é" codé en UTF-8... Message édité par zezette le 06-05-2009 à 14:29:20 ---------------
"Par moment j'me d'mande si chui pas con" G. de Suresnes
|