Sujet : Un topic de plus sur le PHP (mail avec attachement) |
revo |
//On termine le mail en attachant le fichier et en indiquant l'en-tête du fichier attaché
$content .= $EnteteFicAttache.$fic_attache;
essaye de remplacer $content par $headers |
Armanod |
Voila mon code les enfants Tata Armanoïd a du mal avec son envoie de mail!!!! quand j'execute ca, ben mon mail est bien envoyé avec l'attachement mais il me parvient tout en multipart http://www.contrabandent.com/pez/otn/confused/aeh.gif .. merci le décodeur :)
y'a kkn qui peux m'aider? http://www.mpz.co.uk/cwm/otn/confused/1zhelp.gif je sais que je suis près du but!!!!
<?
$to = "mail@boite.fr\n"; $headers = "From: blabla@boite.fr\n"; $subject="Tiens, un petit fichier attaché dans mon mail"; $content="\nBonjour, ceci est le contenu de mon message de mon message\n"; //si le fichier existe, création de l'en-tête et insertion du fichier dans une variable if (file_exists("../ecran/".$image."" )) { $fic = "../ecran/".$cScreen.""; $taille = filesize($fic); $type = filetype($fic);
//parcours la totalité du fichier à attacher et l'insère dans une variable $PtFicAttache = fopen($fic,"r" );
$FicDansChaine = fread($PtFicAttache, $taille); fclose($PtFicAttache); //encodage en base64 pour que le fichier puisse être transmissible à travers d'un système 7-bit, ici un e-mail $fic_attache = base64_encode($FicDansChaine); //scinder la chaîne en plus petit morceaux, pour se conformer à la RFC 2045 (norme des mails) $fic_attache = chunk_split($fic_attache, 64 , "\r\n" );
//Création de l'en-tête du fichier attaché. Attention, les espaces et les \n sont importants !!! $EnteteFicAttache = "\n--some random text\nContent-Type: ".$type.";\n name=\"".$fic."\"\n"."Content-Transfer-Encoding: base64\nContent-Disposition: attachment;\n filename=\"".$fic."\"\n\n"; } //sinon, ben on attache rien du tout else { $fic_attache=""; $EnteteFicAttache=""; } //On termine le mail en attachant le fichier et en indiquant l'en-tête du fichier attaché $content .= $EnteteFicAttache.$fic_attache; //Pour finir, ajouter dans le quatrième paramètre de la fonction mail() ce qui correspond à l'en-tête générale du mail //chr(13) est un retour chariot, chr(10) un saut de ligne et chr(9) une tabulation $headers .= "MIME-Version: 1.0\nContent-Type: multipart/mixed;".chr(13).chr(10).chr(9)."boundary=\"some random text\"\n"; mail($to, $subject, $content, $headers); ?>
:pt1cable: :pt1cable: :pt1cable: :pt1cable: :pt1cable: :pt1cable: |