X-Git-Url: https://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fplugins%2Ffacteur%2Finc%2Fenvoyer_mail.php;fp=www%2Fplugins%2Ffacteur%2Finc%2Fenvoyer_mail.php;h=261c7c159b1bf25be9093883864089db1753635a;hb=3b34d0137e672387909494967123983d45db1ffd;hp=ef29058b51ae922b3b6be55eebf57cfac648d83b;hpb=e302f5262d689fd50b5d8ed424ab1cb71f837751;p=lhc%2Fweb%2Fwww.git diff --git a/www/plugins/facteur/inc/envoyer_mail.php b/www/plugins/facteur/inc/envoyer_mail.php index ef29058b..261c7c15 100644 --- a/www/plugins/facteur/inc/envoyer_mail.php +++ b/www/plugins/facteur/inc/envoyer_mail.php @@ -63,7 +63,39 @@ function inc_envoyer_mail($destinataire, $sujet, $corps, $from = "", $headers = $message_html = $corps; } else { - $message_texte = nettoyer_caracteres_mail($corps); + // Autodetection : tester si le mail est en HTML + if (strpos($headers,"Content-Type:")===false + AND strpos($corps,"<")!==false // eviter les tests suivants si possible + AND $ttrim = trim($corps) + AND substr($ttrim,0,1)=="<" + AND substr($ttrim,-1,1)==">" + AND stripos($ttrim,"")!==false){ + + if(!strlen($sujet)){ + // dans ce cas on ruse un peu : extraire le sujet du title + if (preg_match(",(.*),Uims",$corps,$m)) + $sujet = $m[1]; + else { + // fallback, on prend le body si on le trouve + if (preg_match(",]*>(.*),Uims",$corps,$m)) + $ttrim = $m[1]; + + // et on extrait la premiere ligne de vrai texte... + // nettoyer le html et les retours chariots + $ttrim = textebrut($ttrim); + $ttrim = str_replace("\r\n", "\r", $ttrim); + $ttrim = str_replace("\r", "\n", $ttrim); + // decouper + $ttrim = explode("\n",trim($ttrim)); + // extraire la premiere ligne de texte brut + $sujet = array_shift($ttrim); + } + } + $message_html = $corps; + } + // c'est vraiment un message texte + else + $message_texte = nettoyer_caracteres_mail($corps); } $headers = array_map('trim',explode("\n",$headers)); } @@ -74,6 +106,10 @@ function inc_envoyer_mail($destinataire, $sujet, $corps, $from = "", $headers = if ($message_texte AND ! $message_html){ $message_html = recuperer_fond("emails/texte",array('texte'=>$message_texte,'sujet'=>$sujet)); } + // si le mail est en HTML sans alternative, la generer + if ($message_html AND !$message_texte){ + $message_texte = facteur_mail_html2text($message_html); + } // mode TEST : forcer l'email if (defined('_TEST_EMAIL_DEST')) {