redah75 | Bonjour a tous et a toutes
Je suis confronte a un gros probleme, cela dure depuis des moiis et des mois mais j'arrive vraiment pas a reperer d'où vient l'erreur.... j'ai mis en place un systeme de mailing qui fonctionne bien.
on a la possibilite de joindre 1 ou plusieurs fichier au mail que j'envoie.
l'email est bien envoye MAIS CERTAINS fichiers attaches ne s'ouvrent pas. il me dit qu'il est endommage, et on verifiant le poids du fichier, il fait 3Ko en moins par rapport a l'original!!
je vous mets un peu de code pour bien comprendre ce que je fais:
Code :
- $req = mysql_query("SELECT prenom, nom, email... FROM clients WHERE ..." );
- while($res = mysql_fetch_array($sel))
- {
- send_mail($res[email], "mon sujet", "mon message", $delivery, $attach)
- }
|
voici en resume ma fonction qui permet d'envoyer un mail :
Code :
- //$t: destinataire
- //$delivery: si on envoie le message avec accuse de reception
- //$attach: les nom de fichiers a attacher separes par ~
- function send_mail($t, $subject, $message, $delivery, $attach)
- {
- $boundary = "----iifiir----".md5(time()); // generate the boundary
- $headers = "From: Bla bla bla <mailing@domaine.com>\n";
- if($delivery)
- {
- $headers .= "Disposition-Notification-To: $delivery\n";
- }
- $headers .= "MIME-Version: 1.0\n";
- $headers .= "X-Priority: 1\n";
- $headers .= "X-MSMail-Priority: High\n";
- $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\n\n";
-
- $msg_mail = "--$boundary\n";
- $msg_mail .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
- $msg_mail .= "Content-Transfer-Encoding: 8bit\n\n";
- $msg_mail .= "<html>";
- $msg_mail .= "<head>";
- $msg_mail .= "<style type='text/css'>
- a.link:link, a.link:visited { color: #888888; text-decoration: none; }
- a.link:hover { color: #6666CC; text-decoration: none; }
- .white { color: #FFFFFF; }
- .red { color: #CC3333; }
- .grey { color: #C3C3C3; }
- </style>";
- $msg_mail .= "</head>";
- $msg_mail .= "<body>";
- $msg_mail .= "<table width='604' cellspacing='1' cellpadding='0' align='center' style='border: 1px solid #9999CC;'>";
- $msg_mail .= "<tr><td height='70'<img src='http://www.domaine.com/img/logo_mail.jpg' width='600' height='70' border='0'></td></tr>";
- $msg_mail .= "<tr><td height='20'> </td></tr>";
- $msg_mail .= "<tr><td>$message</td></tr>";
- $msg_mail .= "<tr><td height='20'> </td></tr>";
- $msg_mail .= "</table>";
- $msg_mail .= "</body>";
- $msg_mail .= "</htm>\n\n";
- if($attach) // envoie d'un email avec fichier(s) attache(s)
- {
- $attaches = explode("~", $attach);
- foreach($attaches as $attached_file)
- {
- $attach_size = filesize($attached_file);
- $attach_name = $attached_file; // get the file name
- $attach_type = display_mime_type($attach_name); // j'ai cree cette fonction pour definir le type de fichier
-
- // read the file and encode it
- //$fp = fopen($attached_file, "r" );
- //$attach_content = fread($fp, $attach_size);
- //fclose($fp);
- $attach_content = file_get_contents($attached_file);
- $attach_content = chunk_split(base64_encode($attach_content));
-
- // attach the file
- $msg_mail .= "--$boundary\n";
- $msg_mail .= "Content-Type: $attach_type; name=\"$attach_name\"\n";
- $msg_mail .= "Content-Transfer-Encoding: base64\n";
- $msg_mail .= "Content-Disposition: inline; filename=\"$attach_name\"\n\n";
- $msg_mail .= $attach_content."\n";
- }
- }
- $msg_mail .= "--$boundary--\n"; // final boundary
-
- $return_failure = "webmaster@domaine.com";
- @mail($to, $subject, $msg_mail, $headers, "-f".$return_failure);
- }
|
alors, est ce qu'il y a un \n en trop......????? Je vous remercie infiniment de votre aide, vous allez me sauver!!
Merci,
Reda Message édité par redah75 le 21-02-2008 à 10:50:43
|