Salut à toi qui lit
bon j'ai un p'tit prob et p'etre que quelqu'un pourra me dire ma bétise, moi ca fait 3 jours et j'arrive pas a trouvé le truc :(
donc voilà, l'idée c que je souhaite envoyé un mail via socket, en html & avec un fichier joint.
mon prob c que des que je modif ma sources avec des frontieres (boundary) et différent content type pour les diff partie, ben j'ai un sale vilain truc qui arrive dans outlook.
bien voilà mon code qui envois :
<?
$servermail = "mail.kolapsis.net";
$nl = "
";
$html = "<html>Bonjour #prenom#
Comment allez vous ?</html>";
$html = str_replace("#prenom#","Benjy",$html);
$from = "Mailler <mailler@kolapsis.net>";
$to = "Benjamin ";
$subject = "Test";
$headers = "MIME-Version: 1.0\r\n".
"To: $to\r\n".
"From: $from\r\n".
"Date: ".date("r")."\r\n".
"Subject: ".$subject."\r\n";
$boundary = "------------".md5(uniqid(rand()));
$message = "Content-Type: multipart/mixed;\r\n".
"boundary="".$boundary.""\r\n\r\n".
"This is a multi-part message in MIME format\r\n\r\n".
"--".$boundary."001\r\n\r\n".
"Content-Type: text/html; charset=ISO-8859-1;\r\n".
"Content-Transfer-Encoding: 7bit\r\n".
$html."\r\n\r\n".
"--".$boundary."001\r\n\r\n";
$fp = @fsockopen($servermail, 25, &$errno, &$errstr, 30) or die ("Connexion a '$server' impossible.");
if(!$fp) {
echo "$errstr ($errno)";
exit();
}
fputs($fp,"HELO Mailler\r\n");
$res = fgets($fp,256);
if(substr($res,0,3) != "220") { echo "Transaction impossible.".$nl; return; }
echo " Connecté au serveur mail '$servermail' ".$nl.$nl;
fputs($fp, "MAIL FROM: $from\r\n");
$res = fgets($fp,256);
if(substr($res,0,3) != "250") { echo "Erreur à la commande MAIL FROM : $res".$nl; break; }
fputs($fp, "RCPT TO: $to\r\n");
$res = fgets($fp,256);
if(substr($res,0,3) != "250") { echo "Erreur à la commande RCPT TO : $res".$nl; break; }
echo htmlentities($to)." : ";
fputs($fp, "DATA\r\n");
$res=fgets($fp,256);
if(substr($res,0,3) != "250") { echo "Erreur à la commande DATA : $res".$nl; break; }
fputs($fp, $headers."\r\n\r\n".$message."\r\n.\r\n");
$res=fgets($fp,256);
if(substr($res,0,3) != "354") { echo "Erreur message Body : $res".$nl; break; }
echo " message envoyé ".$nl;
fputs($fp, "QUIT");
$res =fgets($fp,256);
if(substr($res,0,3) != "250") { echo "Impossible de fermer la connexion : $res".$nl; return; }
echo $nl." Transfert terminé ".$nl;
fclose($fp);
?>
et voilà ce que je recois (au lieu du joli mail en html) :
Content-Type: multipart/mixed;
boundary ="------------376897c93a6dbc966ab02c9642af9640"
This is a multi-part message in MIME format
--------------376897c93a6dbc966ab02c9642af9640001
Content-Type: text/html; charset=ISO-8859-1;
Content-Transfer-Encoding: 7bit
<html>Bonjour Benjy
Comment
allez vous ?</html>
--------------376897c93a6dbc966ab02c9642af9640001
Voilà, si jamais quelqu'un trouve ou est mon binz, ben j'lui en serait bien reconnaissant :)
Merci d'avance
Flash sans Limites
_Benjy chez
kOlapsis