tu seras gentil de modifier l'adresse email du destinataire pour tes tests :heink: :)
potiron
he ben tu es mal barré si tu penses faire voyager une image comme ca :lol:
chaque FICHIER (donc aussi image) doit etre encodé en base 64 !
voici un script que j'ai fait pour une mailing liste, tu as meme droit a toutes mes explications + remarquescar il vient de la partie apprentissage de mon DD ;) :
Citation :
<?php
$destinataire="lol1@netcourrier.com";
$from="lolo";
$sujet="sujet";
$img_dep="E:/Mes Documents/web/sites/guylaine/img/p_cube.gif";
$body="Voici le texte du mail :)\n\n";
$limite1= "-----=".md5(uniqid (rand())); // pourquoi ca ?????
// j'ai fait test et mis un texte bidon a la place des 3 fonctions et ca fonctionne ...... dans outlook en tout cas !!
// -- HEADERS GENERAUX --
$header_gen="MIME-Version: 1.0\n";
$header_gen.="Content-Type: multipart/mixed;boundary=\"$limite1\"\n\n"; // header exprimant un mail ayant des multiples headers differents -> des contenues de type differents !!
$header_gen.="\n"; // toujours rajouter une ligne vide apres entete !!!!
// -- LECTURE DU FICHIER IMAGE + CONVERSION CONTENUE --
$open=fopen($img_dep,'r'); // ATTENTION : il peut etre obligatoire de rajouter "b" au mode -> sous windows UNIQUEMENT !!
$img=fread($open,filesize($img_dep));
$img=chunk_split(base64_encode($img));
fclose($open);
$nom_img=basename($img_dep);
// -- HEADERS FICHIERS + CONTENUE --
$body_img="--$limite1\n"; // début de la limite
// application/octet-stream -> sert pour n'importe quel contenue meme s'il est preferable d'etre precis !!
//$header_img.="Content-Type: application/octet-stream; name=\"$nom_img\"\n";
$body_img.="Content-Type: image/gif; name=\"$nom_img\"\n";
$body_img.="Content-Transfer-Encoding: base64\n"; // a la place de ATTACHEMENT je peux mettre INLINE pour que le fichier image soit affiché dans le mail !
// ben merde, je viens de faire test et les 2 affiche quand meme l'image .... ?? serait ce a cause du Content-Type que j'ai mal definie ? -> NON
$body_img.="Content-Disposition: attachement; filename=\"$nom_img\"\n"; $body_img.="\n";
$body_img.=$img."\n";
$body_img.="\n\n";
// bravo d'avoir fait ces 6 dernieres lignes mais est ce que je comprends quelque chose a ce que j'ai betement recopier ??!!!
// envoie d'un mail TXT + FICHIER mail($destinataire,$sujet,$body_texte.$body_img,$header_gen);
/* --------- VOICI LA SOURCE COMPLETE DU MAIL ---------
Received: from frmta01.chello.fr (smtp.chello.fr [212.186.224.12])
by netc-4v.grolier.fr (8.9.3+Sun/8.9.3) with ESMTP id XAA12469
for <lol1@netcourrier.com>; Thu, 1 Nov 2001 23:49:19 +0100 (CET)
Received: from lolo ([XXXXXXXXXXXx]) by frmta01.chello.fr with SMTP
id <20011101225023.MTKO27121.frmta01@lolo>
for <lol1@netcourrier.com>; Thu, 1 Nov 2001 23:50:23 +0100
Date: Thu, 01 Nov 2001 23:39:34 -0100
From: lolo
Subject: sujet
To: lol1@netcourrier.com
MIME-Version: 1.0
Content-Type: multipart/mixed;boundary="-----=9b8d27151b93b2bfe2d393f0a205f952"
Message-Id: <20011101225023.MTKO27121.frmta01@lolo>
Status: X-Mmail: \Recent X-M-Uid: 0010317.1004654962
// le principe est de rajouter un header + limite pour chaque type/format
?>
[edtdd]--Message édité par potiron--[/edtdd]
darkoli
Je@nb a écrit a écrit :
.= est l'affectation ajouté, par exemple tu as une variable
$a = 'a';
en faisait $a .= 'b'; ça correspond àa faire $a = $a.'b';
pour faire du HTML, il faut mettre le content-type text/html et le charset
C'est le += de c/c++ si j'ai bien compris.
IvanleFou
oki merci :jap:
Je@nb
.= est l'affectation ajouté, par exemple tu as une variable
$a = 'a';
en faisait $a .= 'b'; ça correspond àa faire $a = $a.'b';
pour faire du HTML, il faut mettre le content-type text/html et le charset
IvanleFou
ah d'accord, on peut inserer du code html ds le mail.
Pkoi tu mets tjs ".=" ?
Je@nb
ton mail aura cette aspect :
$headers .="From:moi@moi.com\n";
$headers .="Content-Type: text/html; charset=iso-8859-1\n";
$text .= "<html><body>
<center><img src='monimage.gif'><br>
</body></html>";