Index du Forum » » Bugs, Probs ...

Auteur

petite lettre d'information html
jrotsaert
2  

  Posté : 18-10-2006 09:53

oui... j'ai trouvé la solution...

j'ai remplacé la fonction send_mail qui est dans mainfile.php par ces deux fonctions suivantes (bon j'ai fait ce que j'ai pu...):


#autodoc function htm2txt($text) : pour transformer du html en text
function htm2txt($text)
{
// Crée un tableau contenant les codes ascii des caractères
// ayant un codage en html
$ascii_array=array_merge(array(34,38,60,62),range(160,255));

// Crée un tableau contenant les caractères correspondants
// aux codes ascci précédents
$chars_array=array_map("chr", $ascii_array);

// Crée un tableau contenant les mêmes caractères au format html
$html_array=array_map("htmlentities", $chars_array);

// Remplace les codes html par leurs équivalents txt dans le texte
for($i=0; $i {
$text=ereg_replace($html_array[$i],$chars_array[$i],$text);
}

// Remplace les sauts de ligne html
par \n dans le texte
$text=ereg_replace("
","\n",$text);

// Supprime les éventuelles balises html et php
$text=strip_tags($text);

// Retourne le texte traité
return($text);
}


#autodoc send_email($email, $subject, $message, $from, $priority, $mime) : Pour envoyer un mail en texte ou html via les fonctions mail ou email
function send_email($email, $subject, $message, $from="", $priority=false, $mime=false) {
global $mail_fonction, $adminmail;
$advance="";
if ($priority) {
$advance="X-Priority: 1\n";
}
if ($mime=="text")
{
$advance.="!content-type:! text/plain; charset=iso-8859-1\n";
if (($mail_fonction==1) or ($mail_fonction=="")) {
$From_email=$adminmail;
if ($from!="") { $From_email=$from; }
$result=mail($email, $subject, $message, "!from:! $From_email\nX-Mailer: NPDS\n$advance");
} else {
$pos = strpos($adminmail, "@");
$tomail=substr($adminmail,0,$pos);
$result=email($tomail, $email, $subject, $message, $tomail, "Return-Path:\nX-Mailer: NPDS\n$advance");
}
}
if ($mime=="html")
{
$frontiere = '-----=' . md5(uniqid(mt_rand()));

$advance.= '!mime-version:! 1.0'."\n";
$advance.= '!content-type:! multipart/alternative; boundary="'.$frontiere.'"';


$message2 = 'This is a multi-part message in MIME format.'."\n\n";

$message2 .= '--'.$frontiere."\n";
$message2 .= '!content-type:! text/plain; charset="iso-8859-1"'."\n";
$message2 .= '!content-transfer-encoding:! 8bit'."\n\n";
$message2 .= htm2txt($message)."\n\n";

$message2 .= '--'.$frontiere."\n";
$message2 .="!content-type:! text/html; charset=iso-8859-1\n";
$message2 .= '!content-type:! text/html; charset="iso-8859-1"'."\n";
$message2 .= '!content-transfer-encoding:! 8bit'."\n\n";
$message2 .= $message."\n\n";

$message2 .= '--'.$frontiere.'--'."\n";

if (($mail_fonction==1) or ($mail_fonction=="")) {
$From_email=$adminmail;
if ($from!="") { $From_email=$from; }
$result=mail($email, $subject, $message2, "!from:! $From_email\nX-Mailer: NPDS\n$advance");
} else {
$pos = strpos($adminmail, "@");
$tomail=substr($adminmail,0,$pos);
$result=email($tomail, $email, $subject, $message2, $tomail, "Return-Path:\nX-Mailer: NPDS\n$advance");
}

}

if ($result) {
return (true);
} else {
return (false);
}
}



Cet article provient de NPDS

http://www.npds.org/viewtopic.php?topic=21357&forum=1