Function Mail Html Ok + Mail Brut -> PB boundary
Bonjour , Bonsoir ,:lol:
J'ai un gros soucis pour ma newsletter , impossible d'envoyer du contenu texte sans perdre le html :(
Edit : Je pense que le prob provient des headers .. et dans la gestion des pieces jointes ..
1er Code : Envoi un mail html correctement sans mail text/plain
2eme Code : Envoi Html + Brut : pb de visionnage html , ok concernant le mail text/plain si on demande à notre client de mail de le visionner, MAIS le code html ne marche pas , mais je vois bien pourtant les balises html dans le code dans les sources du mails... meme les images + pdf encodés .. ( d'ailleurs ils ne sont meme pas comptabilisé dans la taille du message ? header foireux ...?! ) arf
Merci d'avance
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
| <?php
//BLABLA
mysql_connect("localhost", "xxxx", "xxxx");
mysql_select_db("Mailing");
$iquery = "select * from conf";
$squery = mysql_query($iquery);
$donnees = mysql_fetch_array($squery);
$linkimage1 = $donnees['linkimage1'];
$linkimage2 = $donnees['linkimage2'];
$Image_Formation_1 ="/var/www/prod/demo.DOMAINE.fr/file-mailing/formation_image_1.jpg";
$Image_Formation_2 ="/var/www/prod/demo.DOMAINE.fr/file-mailing/formation_image_2.jpg";
$PDF ="/var/www/prod/demo.DOMAINE.fr/file-mailing/formation.pdf";
$Name_Image_Formation_1 = "formation_image_1.jpg";
$Name_Image_Formation_2 = "formation_image_2.jpg";
$Name_PDF = "formation.pdf";
$MailFrom="XXX YYY - Formation";
$MailFromAdr="formation@DOMAINE.fr";
///FIN BLABLA
//DEPART
$CID = md5(uniqid (rand(), 1));
$mime_boundary = "" . md5(uniqid(mt_rand(), 1));
$Header= "From:$MailFrom<$MailFromAdr>\n";
// $Header.= "X-mailer: PHP/" . phpversion(). "\n";
$Header.= "MIME-Version: 1.0\n";
$Header.= "Content-Type: multipart/related; boundary=\"".$mime_boundary."\"; type=\"text/plain\"\n";
$MailBody = "--".$mime_boundary."\n";
$MailBody.= "Content-Type: Text/HTML; charset=iso-8859-1";
$MailBody.= "Content-Transfer-Encoding: quoted-printable\n\n";
$MailBody.= "<html><head></head><body><br><br>";
$MailBody.= "<br>";
$MailBody .= "<div align=\"center\"><a href=\"".$linkimage1."\"><img src=\"formation_image_1.jpg\" height=\"1054\" width=\"745\" border=0 alt=\"formation image 1\"></a><br></div>";
$MailBody .= "<div align=\"center\"><a href=\"".$linkimage2."\"><img src=\"formation_image_2.jpg\" height=\"1054\" width=\"745\" border=0 alt=\"formation image 2\"></a><br></div>";
//$MailBody .= "<div align=\"center\"><img src=\"cid:$file_id\" alt=\"calor\"><br></div>";
//$message .= "<img src=\"cid:$file_id\" alt=\"calor\"><br>";
$MailBody .= "<br>Pour vous desinscrire envoyer un courrier electronique à desabo@DOMAINE.fr.";
$MailBody.= "<br><br></body></html>\n\n";
$MailBody .= "\n \n \r Si vous ne visualisez pas correctement ce message , rendez-vous a l adresse suivante ".$linkimage1."\n\n";
$MailBody.= "--".$mime_boundary."\n";
$MailBody = str_replace("formation_image_1.jpg", "cid:$CID.$Name_Image_Formation_1", $MailBody);
$MailBody = str_replace("formation_image_2.jpg", "cid:$CID.$Name_Image_Formation_2", $MailBody);
$fp = fopen ($Image_Formation_2, "rb");
$str = fread ($fp, filesize ($Image_Formation_2));
$datar = chunk_split(base64_encode($str));
$content = "";
$content.= "Content-Type: image/jpg\n";
$content.= "Content-ID: <$CID.$Name_Image_Formation_2>\n";
$content.= "Content-Transfer-Encoding: base64\n";
$content.= "Content-Disposition: inline; filename=\"$Name_Image_Formation_2\"\n\n";
fclose($fp);
$content.= $datar."\n";
$MailBody.= $content;
$MailBody.= "--".$mime_boundary."\n";
$fp = fopen ($Image_Formation_1, "rb");
$str = fread ($fp, filesize ($Image_Formation_1));
$data = chunk_split(base64_encode($str));
$content = "";
$content.= "Content-Type: image/jpg\n";
$content.= "Content-ID: <$CID.$Name_Image_Formation_1>\n";
$content.= "Content-Transfer-Encoding: base64\n";
$content.= "Content-Disposition: inline; filename=\"$Name_Image_Formation_1\"\n\n";
fclose($fp);
$content.= $data."\n";
$MailBody.= $content;
$MailBody.= "--".$mime_boundary."\n";
$fp = fopen ($PDF, "rb");
$str = fread ($fp, filesize ($PDF));
$dataz = chunk_split(base64_encode($str));
$content = "";
$content.= "Content-Type: application/pdf\n";
$content.= "Content-ID: <$CID.$Name_PDF>\n";
$content.= "Content-Transfer-Encoding: base64\n";
$content.= "Content-Disposition: inline; filename=\"$Name_PDF\"\n\n";
fclose($fp);
$content.= $dataz."\n";
$MailBody.= $content;
$MailBody.= "--".$mime_boundary."\n";
mysql_connect("localhost", "xxxx", "xxxx");
mysql_select_db("Mailing");
$iquery = "select sujet from conf";
$squery = mysql_query($iquery);
$donnees = mysql_fetch_array($squery);
$MailToSubject = $donnees['sujet'];
$MailTo ="xxx@xxx.fr";
//$MailTo ="yyy@yyy.com";
mail($MailTo, $MailToSubject, $MailBody, $Header,"-fformation@DOMAINE.fr");
?> |
le code qui ne fonctionne pas
( le contenu alternative brut marche , mais le code html ne fonctionne plus .. le contenu du mail contient bien les pj mais dans mon client de messagerie la taille ne les comptabilise pas .. ! bizarre
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
| <?php
//BLABLA
mysql_connect("localhost", "root", "mdpxxx");
mysql_select_db("Mailing");
$iquery = "select * from conf";
$squery = mysql_query($iquery);
$donnees = mysql_fetch_array($squery);
$linkimage1 = $donnees['linkimage1'];
$linkimage2 = $donnees['linkimage2'];
$Image_Formation_1 ="/var/www/prod/demo.DOMAINE.fr/file-mailing/formation_image_1.jpg";
$Image_Formation_2 ="/var/www/prod/demo.DOMAINE.fr/file-mailing/formation_image_2.jpg";
$PDF ="/var/www/prod/demo.DOMAINE.fr/file-mailing/formation.pdf";
$Name_Image_Formation_1 = "formation_image_1.jpg";
$Name_Image_Formation_2 = "formation_image_2.jpg";
$Name_PDF = "formation.pdf";
$MailFrom="XXX YYY - Formation";
$MailFromAdr="formation@DOMAINE.fr";
///FIN BLABLA
//DEPART
$CID = md5(uniqid (rand(), 1));
$mime_boundary = "" . md5(uniqid(mt_rand(), 1));
$Header= "From:$MailFrom<$MailFromAdr>\n";
// $Header.= "X-mailer: PHP/" . phpversion(). "\n";
$Header.= "MIME-Version: 1.0\n";
$Header.= "Content-Type: multipart/alternative; boundary=\"".$mime_boundary."\"; \n";
$MailBody = 'This is a multi-part message in MIME format.'."\n\n";
$MailBody.= "--".$mime_boundary."\n";
$MailBody.= "Content-Type: Text/plain; charset=iso-8859-1\n";
//windows-1252
$MailBody.= "Content-Transfer-Encoding: 8bit\n\n";
$MailBody.= "Coucou message test\n\n";
$MailBody .= "--".$mime_boundary."\n";
$MailBody.= "Content-Type: Text/HTML; charset=iso-8859-1";
$MailBody.= "Content-Transfer-Encoding: quoted-printable\n\n";
$MailBody.= "<html><head></head><body><br><br>";
$MailBody.= "<br>";
$MailBody .= "<div align=\"center\"><a href=\"".$linkimage1."\"><img src=\"formation_image_1.jpg\" height=\"1054\" width=\"745\" border=0 alt=\"formation image 1\"></a><br></div>";
$MailBody .= "<div align=\"center\"><a href=\"".$linkimage2."\"><img src=\"formation_image_2.jpg\" height=\"1054\" width=\"745\" border=0 alt=\"formation image 2\"></a><br></div>";
//$MailBody .= "<div align=\"center\"><img src=\"cid:$file_id\" alt=\"calor\"><br></div>";
//$message .= "<img src=\"cid:$file_id\" alt=\"calor\"><br>";
$MailBody .= "<br>Pour vous desinscrire envoyer un courrier electronique à desabo@DOMAINE.fr.";
$MailBody.= "<br><br></body></html>\n\n";
$MailBody .= "\n \n \r Si vous ne visualisez pas correctement ce message , rendez-vous a l adresse suivante ".$linkimage1."\n\n";
$MailBody.= "--".$mime_boundary."\n";
$MailBody = str_replace("formation_image_1.jpg", "cid:$CID.$Name_Image_Formation_1", $MailBody);
$MailBody = str_replace("formation_image_2.jpg", "cid:$CID.$Name_Image_Formation_2", $MailBody);
$fp = fopen ($Image_Formation_2, "rb");
$str = fread ($fp, filesize ($Image_Formation_2));
$datar = chunk_split(base64_encode($str));
$content = "";
$content.= "Content-Type: image/jpg\n";
$content.= "Content-ID: <$CID.$Name_Image_Formation_2>\n";
$content.= "Content-Transfer-Encoding: base64\n";
$content.= "Content-Disposition: inline; filename=\"$Name_Image_Formation_2\"\n\n";
fclose($fp);
$content.= $datar."\n";
$MailBody.= $content;
$MailBody.= "--".$mime_boundary."\n";
$fp = fopen ($Image_Formation_1, "rb");
$str = fread ($fp, filesize ($Image_Formation_1));
$data = chunk_split(base64_encode($str));
$content = "";
$content.= "Content-Type: image/jpg\n";
$content.= "Content-ID: <$CID.$Name_Image_Formation_1>\n";
$content.= "Content-Transfer-Encoding: base64\n";
$content.= "Content-Disposition: inline; filename=\"$Name_Image_Formation_1\"\n\n";
fclose($fp);
$content.= $data."\n";
$MailBody.= $content;
$MailBody.= "--".$mime_boundary."\n";
$fp = fopen ($PDF, "rb");
$str = fread ($fp, filesize ($PDF));
$dataz = chunk_split(base64_encode($str));
$content = "";
$content.= "Content-Type: application/pdf\n";
$content.= "Content-ID: <$CID.$Name_PDF>\n";
$content.= "Content-Transfer-Encoding: base64\n";
$content.= "Content-Disposition: inline; filename=\"$Name_PDF\"\n\n";
fclose($fp);
$content.= $dataz."\n";
$MailBody.= $content;
$MailBody.= "--".$mime_boundary."\n";
mysql_connect("localhost", "root", "mdpxxx");
mysql_select_db("Mailing");
$iquery = "select sujet from conf";
$squery = mysql_query($iquery);
$donnees = mysql_fetch_array($squery);
$MailToSubject = $donnees['sujet'];
$MailTo ="xxx@xxx.fr";
//$MailTo ="yyy@yyy.com";
mail($MailTo, $MailToSubject, $MailBody, $Header,"-zzz@xxx.fr");
?> |
ps : Merci à ceux qui on lu le message mais n'ont pas répondu -> vous avez qd meme pris la peine de lire ! :) et donc essayer de m'aider
ps1 at admin @ modo : y a t il une purge des comptes car mon compte ne marche plus ! ( old compte )