[PHP] comment inserer des images dans un mail?

comment inserer des images dans un mail? [PHP] - Programmation

Marsh Posté le 17-01-2002 à 16:13:32    

j'utilise la fonction mail() en PHP pour envoyer des mails. Le texte du mail je le defini comme ca: $contenu="abcd...";
 
Comment je peux rajouuter des sauts de lignes et des images dans le contenu du mail?

Reply

Marsh Posté le 17-01-2002 à 16:13:32   

Reply

Marsh Posté le 17-01-2002 à 17:18:50    

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>";
 
mail("destinataire@destinataire.com","Objet","$text",
"$headers" );

Reply

Marsh Posté le 17-01-2002 à 19:03:04    

ah d'accord, on peut inserer du code html ds le mail.
 
Pkoi tu mets tjs ".=" ?

Reply

Marsh Posté le 17-01-2002 à 20:40:00    

.= 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

Reply

Marsh Posté le 18-01-2002 à 01:02:45    

oki merci :jap:

Reply

Marsh Posté le 18-01-2002 à 11:14:40    

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.

Reply

Marsh Posté le 18-01-2002 à 11:19:56    

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 !!!!
 
 
// -- HEADERS TEXTE + CONTENUE --
$body_texte.="--$limite1\n";  
$body_texte.="Content-Type: text/plain; charset=\"iso-8859-1\"\n";  
$body_texte.="Content-Transfer-Encoding:8bit\n";  
$body_texte.="\n";  
$body_texte.="$body\n";  
$body_texte.="\n";  
 
 
// -- 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
 
 
 
 
-------=9b8d27151b93b2bfe2d393f0a205f952
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding:8bit
 
Voici le texte du mail :)
 
 
 
-------=9b8d27151b93b2bfe2d393f0a205f952
Content-Type: image/gif; name="p_cube.gif"
Content-Transfer-Encoding: base64
Content-Disposition: attachement; filename="p_cube.gif"
 
R0lGODlhsQC0AMQAAABBXAWY1sTp+QBzpACCuRer6AJplQCNyC
 
 
i6+AB8sITS8g2l5QGRz2Gryg2f
3Baz9D/E+gFZgB2w7Qub1wWe3jmRtv////7//wAAAAAAAAAAAA
 
 
AAAAAAAAAAAAAAAAAAACH5BAAA
AAAALAAAAACxALQAAAX.........etc
 
-----------------------------------------------------------------
 
- */
 
// le principe est de rajouter un header + limite pour chaque type/format
?>

 

[edtdd]--Message édité par potiron--[/edtdd]

Reply

Marsh Posté le 18-01-2002 à 11:27:54    

tu seras gentil de modifier l'adresse email du destinataire pour tes tests  :heink:  :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed