$message_html = $corps;\r
}\r
else {\r
- $message_texte = nettoyer_caracteres_mail($corps);\r
+ // Autodetection : tester si le mail est en HTML\r
+ if (strpos($headers,"Content-Type:")===false\r
+ AND strpos($corps,"<")!==false // eviter les tests suivants si possible\r
+ AND $ttrim = trim($corps)\r
+ AND substr($ttrim,0,1)=="<"\r
+ AND substr($ttrim,-1,1)==">"\r
+ AND stripos($ttrim,"</html>")!==false){\r
+\r
+ if(!strlen($sujet)){\r
+ // dans ce cas on ruse un peu : extraire le sujet du title\r
+ if (preg_match(",<title>(.*)</title>,Uims",$corps,$m))\r
+ $sujet = $m[1];\r
+ else {\r
+ // fallback, on prend le body si on le trouve\r
+ if (preg_match(",<body[^>]*>(.*)</body>,Uims",$corps,$m))\r
+ $ttrim = $m[1];\r
+\r
+ // et on extrait la premiere ligne de vrai texte...\r
+ // nettoyer le html et les retours chariots\r
+ $ttrim = textebrut($ttrim);\r
+ $ttrim = str_replace("\r\n", "\r", $ttrim);\r
+ $ttrim = str_replace("\r", "\n", $ttrim);\r
+ // decouper\r
+ $ttrim = explode("\n",trim($ttrim));\r
+ // extraire la premiere ligne de texte brut\r
+ $sujet = array_shift($ttrim);\r
+ }\r
+ }\r
+ $message_html = $corps;\r
+ }\r
+ // c'est vraiment un message texte\r
+ else\r
+ $message_texte = nettoyer_caracteres_mail($corps);\r
}\r
$headers = array_map('trim',explode("\n",$headers));\r
}\r
if ($message_texte AND ! $message_html){\r
$message_html = recuperer_fond("emails/texte",array('texte'=>$message_texte,'sujet'=>$sujet));\r
}\r
+ // si le mail est en HTML sans alternative, la generer\r
+ if ($message_html AND !$message_texte){\r
+ $message_texte = facteur_mail_html2text($message_html);\r
+ }\r
\r
// mode TEST : forcer l'email\r
if (defined('_TEST_EMAIL_DEST')) {\r