fonction mail() pour php : probleme fichiers joints

WRInaute impliqué
Bonjour,

Voilà, j'ai une fonction qui marche bien pour envoyer des mails. J'ai voulu ajouter des fichiers joints (les images contenues dans le corps du texte), mais avec cette modif, je recois QUE des fichiers joints, dont le contenu du mail en piece jointe (appelés Partie 1.X.txt et Partie 1.X+1.html)...

Si quelqu'un peut m'aider... C'est assez balèze, je sais pas si quelqu'un saura, mais on ne sait jamais ! Ou si vous connaissez une class PHP compatible Gmail qui fonctionne bien et qui joint les images contenues dans la page...

Voici le code en question

Code:
function email($destinataire, $sujet , $messtxt, $messhtml,$mailfrom="noreply@votresite.com",$namefrom="votresite.com") 
{ 
	global $site_url;
		
	$boundary = "_".md5 (uniqid (rand()));
		
	$new_message = get_image($messhtml, $boundary); // je récupère les images du texte via une autre fonction et je les change du style <img src="cid:$bildID" border=0>
	$messhtml = $new_message["texte"];
		
	$entete = "MIME-Version: 1.0\n";
	$entete .= "From:$namefrom <robot@mail.votresite.com>\n"; 
	$entete .= "X-Sender: <www.votrsite.com>\n";
	$entete .= "X-Mailer: PHP\n";
	$entete .= "X-auth-smtp-user: webmaster@votresite.com \n";
	$entete .= "X-abuse-contact: abuse@votresite.com \n";
	$entete .= "Reply-to: $namefrom <$mailfrom>\n";
	

	// C'EST CETTE PARTIE AJOUTEE QUI JOINT LES FICHIERS ET POSE PROBLEME
	if(count($new_message["header"])>0)
	 {
		$entete .= "Content-Type: multipart/related; type=\"multipart/alternative\"; boundary=\"$boundary\"\n\n";
		$entete .= "--" . $boundary . "\n"; 
     for($i=0;$i<count($new_message["header"]);$i++) $entete .= $new_message["header"][$i]; // *1
		$entete .= "\n\n"; 
	}
		
	$message .= "--" . $boundary . "\n"; 
	$message .= "This is a multi-part message in MIME format.\n\n"; 
	$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; 
	$message .= "Content-Transfer-Encoding: quoted-printable\n\n"; 
	$message .= $messtxt; 
	$message .= "\n\n"; 
	$message .= "--" . $boundary . "\n"; 
	$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"; 
	$message .= "Content-Transfer-Encoding: quoted-printable\n\n"; 
	$message .= str_replace("=","=3D",$messhtml); 
	$message .= "\n\n"; 
				
	return @mail($destinataire, $sujet, $message, $entete); 
}
email("test@test.com","test 3",strip_tags(nl2br($contents1)),$contents1,$lemail,$lauteurl);

*1 sont sous la forme

Code:
$header = "--" . $boundary . "\n";
$header .= "Content-Type: image/gif";\n name=\"nom de l'image\"\n";
$header .= "Content-Transfer-Encoding: base64\n";
$header .= "Content-ID: <$bildID>\n\n";
$header .= chunk_split(base64_encode(fread(fopen($fichier,"rb"),filesize($fichier))),72)."\n\n";
[/code]
 
WRInaute passionné
il est temps de se mettre à PHPMailer..

essaie d'inverser ces deux lignes
Code:
 $entete .= "Content-Type: multipart/related; type=\"multipart/alternative\"; boundary=\"$boundary\"\n\n";
      $entete .= "--" . $boundary . "\n";
 
WRInaute impliqué
Ha.. cette fois tou est dans le contenu du mail mais sous la forme :

Code:
--_5619e0ceb433f912801d9c6a8f6c278f
Content-Type: multipart/related; type="multipart/alternative"; boundary="_5619e0ceb433f912801d9c6a8f6c278f"

--_5619e0ceb433f912801d9c6a8f6c278f
Content-Type: image/gif;
 name="images/logo_chine.gif"
Content-Transfer-Encoding: base64
Content-ID: <120427978047c7d9e406020>

R0lGODlh4wBJAIflADY2NoKCgrICArpERsLCws6Cg8diY8ympsAmJuLi4tRDRtpkZduCg8U2
ONqmproSFubCwtRSVNhydtq0tNqamsIZHM02NuLT08ooKcqXl7pSUsJ0ePLy8soKDt5SUl5e
XrUOD9RKTdZucOuys76+vtl6e8o+P9LS0rkeHuCKjuelpumWmaKios6Oj8MuMtNaXvPS08py
cvji4sZCRt5iYvLExOq6vroaG8MeIM4uMs1SU91KTOeqq7YGCtPGxtJjZM2ystI4Os6ens5y
dshKS85dX0pKSsIuLrpCQt56fvba2sYmJ9JaWt2envr6+nJyctKMkJKSkt+Kit90droOD+y6
uuCSlPrs7M1aWtpER74UF9pSVM+2ttY/QemenrKysuBmavLOz8oiJtpOUtFqatOentSGiMIq
Lurq6tpmauKCgsY6PubMzNq+v8o6Ps0uLsp9f+Jwcuq2utZ+gtra2u6kptpeYvPW1sYiJtIy
NspWWt5OTu6urrkKDNbKytWurkJCQmpqalZWVoqKisrKyuba2qqqqnp6epqamt9aXD4+PsaK
iuKuruK6umZmZlJSUta+vrq6us7Cwu7i4u7S0taWmPzy8t7S0sY/QOa+vtKqreKZmsq+vvPK...

--_5619e0ceb433f912801d9c6a8f6c278f
This is a multi-part message in MIME format.

Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable


MON CONTENU TEXTE...
 
WRInaute passionné
je me demande ce que "This is a multi-part message in MIME format. " fout là.. du moins je n'en vois pas l'utilité, essaie sans ..

par ailleurs le name="image" doit se trouver sur la même ligne que Content-Type: image/gif; au dessus
 
WRInaute impliqué
Bon voila...

il faut bien faire :

Code:
$entete .= "Content-Type: multipart/related; type=\"multipart/alternative\"; boundary=\"$boundary\"\n\n"; 
$entete .= "--" . $boundary . "\n";

Cependant les images ne s'affichent tjrs pas (pas liées...), alors pour "débuggé" et voir le code, de réinverse ces ligne, ce qui m'affiche bien le mail en remplacant les images par (par exemple)

Code:
<img src="cid:120428290347c7e617c1d40" border=0>

avec dans les headers le code correspondant :


Code:
--_41baa2f95a11048881b178362ff976e6
Content-Type: image/gif;name="120428290347c7e617c1d40.gif"
Content-Transfer-Encoding: base64
Content-ID: <120428290347c7e617c1d40>

R0lGODlhjwAdAPcAAP///////+YiOvrT2PvY3PB6ifWnsO9wgPB9i+cvRvaxufOXoupJXetO
Yek8Ufzl6P76+vWkru1jdP3v8epBVvnIzuxZa+YlPPi+xfrV2vaut/zo6vzi5vKKl/nL0f7y
8+tRZOg0SucnP+1eb/jBx/rQ1exbbexWaPGFkvvg4/aste5mdvOSnuk/U/B4hv/8/fvd4fe7
w+cqQf3q7PnGzPa0vOpGWucsQ+5oefSfqetMX/Wps/KPm+9zgu9tfegySPShrOxTZve5wPnO
0+1gcvGAjek5T/GHlPKNmf3t7/73+Og3TfjDyve2vu91hP719vOUoPGCkPSapepEWO5re/vb
3///////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/////////////////////////////////////6QAtf8A/8BFp3gBuf//////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/////////////////////////////////yH5BAEAAAAALAAAAACPAB0AAAj/AAEMYCCgoMGD
CBMqXMiwocOHECNKnChAxwAAHGRYoDGgo8ePIEOKHEmypMmTKFOqVEnDwg8OEhgoCUCzps2b
OHPq3Mmzp8+fQIMKDaCkhRMBKoYqXcq0qVOnKmQIIPC0qtWrWIESKEg1q9evYJlunRq2rNmz
N8d2Rcu27VW1buPKXQp3rt27O+vaxICgL4IiNGp+QNDEpgq/fZMGQOxXQQAUQ2rSkKDDQoSZ
ARQkTcL4coAHjBFECECAMZIZOTkgCFyTBQabCkbnBJ0kAIvQtTtErqnCsU29NRe0iEDchYDC
ASK0MGLTiWXiLGR0SE78hxPiHgL88I3kBwsayqnQ/0Tg5LMAJNCXSCAtIAdx4q8xyHgfgUEL
zDZRGLFgk8ECmwisl9NWDwTAABX0eWaEbzQ5gUBaXOG0wAnN8RcACCos8VqDD9aUww82GSEb
TdsFMIQAuwVQhQCvkWfeWjQIMMNWH+CEAYg1JSEAazUp8QMGAlRRk38ACogTgQb+h9OCzXVY
E3A0TZgffwTIkAQKRjpoEwsthDiido4FeBMH45X3AFk0DSDAAzTaiCNNHKB4UxPMSYDCkEqO
ZySEBRK5JIMBaPlbhDctYFFHCvwwGgrirUhmoM9F4IQMitEkok0lWnBnTi6e2URHNJygA3sO
+hWZfO91YMSeNEkwXRM/YP/mp546IckACIhJYSmggj5JqE0LHNQCEkT9SJMO0wXKAHk/gCCk
l5g6pqlOnR70gwRkbuXee2TK1xcDJd50ppA+KjbrYqz62ieC723IZE290gRlAFLOiVCsgXZY
xQ/EQltTiU6ItxeZ1a7la4033VgTZfhFiRAINFnAAoACH7lmkjm1UGkAdkKIJrAU3iRBETnK
4FivCgiQXU2X/uuYfAXSlMQPSRVsMcJ7vTmzkzS1kIOvAwRa8YXJyvxDbVvVdm5N07L8JXsf
BxdyTWemCGm+Nklwn9PRRswABh/QAAIIM9kMIUceUaVwTSmvHIAHAtRWkw4uBBDjAh2hIIPB
ARiu0QEBLnRpYBEg1RhVBB1NGrOvUdOkQt02NcGqBzrMgESen2G4MHIRb6hEB0sI8AMCci9A
7Aw6PGoTBzq07jp/HlhYkwsVL8BzACpYMFMTBAkAAo+StSDAFLtR4brrKytXkAVWy/srXtDj
NW/01Lc1ffXYl3V99txntX334D+1FaXhl59VVE5sbf76TRXlBAc/bLTS/PTXb//9+IPqEgcC
9U7R/wAMoAAH+D8GXCQgADs=


EN entier ca donne à peut près ca :
Code:
Content-Type: multipart/related; type="multipart/alternative"; boundary="_41baa2f95a11048881b178362ff976e6"
--_41baa2f95a11048881b178362ff976e6

--_41baa2f95a11048881b178362ff976e6
Content-Type: image/gif;name="120428290347c7e617c1d40.gif"
Content-Transfer-Encoding: base64
Content-ID: <120428290347c7e617c1d40>

R0lGODlhjwAdAPcAAP///////+YiOvrT2PvY3PB6ifWnsO9wgPB9i+cvRvaxufOXoupJXetO
Yek8Ufzl6P76+vWkru1jdP3v8epBVvnIzuxZa+YlPPi+xfrV2vaut/zo6vzi5vKKl/nL0f7y
8+tRZOg0SucnP+1eb/jBx/rQ1exbbexWaPGFkvvg4/aste5mdvOSnuk/U/B4hv/8/fvd4fe7
w+cqQf3q7PnGzPa0vOpGWucsQ+5oefSfqetMX/Wps/KPm+9zgu9tfegySPShrOxTZve5wPnO
0+1gcvGAjek5T/GHlPKNmf3t7/73+Og3TfjDyve2vu91hP719vOUoPGCkPSapepEWO5re/vb
3///////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/////////////////////////////////////6QAtf8A/8BFp3gBuf//////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/////////////////////////////////yH5BAEAAAAALAAAAACPAB0AAAj/AAEMYCCgoMGD
CBMqXMiwocOHECNKnChAxwAAHGRYoDGgo8ePIEOKHEmypMmTKFOqVEnDwg8OEhgoCUCzps2b
OHPq3Mmzp8+fQIMKDaCkhRMBKoYqXcq0qVOnKmQIIPC0qtWrWIESKEg1q9evYJlunRq2rNmz
N8d2Rcu27VW1buPKXQp3rt27O+vaxICgL4IiNGp+QNDEpgq/fZMGQOxXQQAUQ2rSkKDDQoSZ
ARQkTcL4coAHjBFECECAMZIZOTkgCFyTBQabCkbnBJ0kAIvQtTtErqnCsU29NRe0iEDchYDC
ASK0MGLTiWXiLGR0SE78hxPiHgL88I3kBwsayqnQ/0Tg5LMAJNCXSCAtIAdx4q8xyHgfgUEL
zDZRGLFgk8ECmwisl9NWDwTAABX0eWaEbzQ5gUBaXOG0wAnN8RcACCos8VqDD9aUww82GSEb
TdsFMIQAuwVQhQCvkWfeWjQIMMNWH+CEAYg1JSEAazUp8QMGAlRRk38ACogTgQb+h9OCzXVY
E3A0TZgffwTIkAQKRjpoEwsthDiido4FeBMH45X3AFk0DSDAAzTaiCNNHKB4UxPMSYDCkEqO
ZySEBRK5JIMBaPlbhDctYFFHCvwwGgrirUhmoM9F4IQMitEkok0lWnBnTi6e2URHNJygA3sO
+hWZfO91YMSeNEkwXRM/YP/mp546IckACIhJYSmggj5JqE0LHNQCEkT9SJMO0wXKAHk/gCCk
l5g6pqlOnR70gwRkbuXee2TK1xcDJd50ppA+KjbrYqz62ieC723IZE290gRlAFLOiVCsgXZY
xQ/EQltTiU6ItxeZ1a7la4033VgTZfhFiRAINFnAAoACH7lmkjm1UGkAdkKIJrAU3iRBETnK
4FivCgiQXU2X/uuYfAXSlMQPSRVsMcJ7vTmzkzS1kIOvAwRa8YXJyvxDbVvVdm5N07L8JXsf
BxdyTWemCGm+Nklwn9PRRswABh/QAAIIM9kMIUceUaVwTSmvHIAHAtRWkw4uBBDjAh2hIIPB
ARiu0QEBLnRpYBEg1RhVBB1NGrOvUdOkQt02NcGqBzrMgESen2G4MHIRb6hEB0sI8AMCci9A
7Aw6PGoTBzq07jp/HlhYkwsVL8BzACpYMFMTBAkAAo+StSDAFLtR4brrKytXkAVWy/srXtDj
NW/01Lc1ffXYl3V99txntX334D+1FaXhl59VVE5sbf76TRXlBAc/bLTS/PTXb//9+IPqEgcC
9U7R/wAMoAAH+D8GXCQgADs=


--_41baa2f95a11048881b178362ff976e6
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

ya une image ici mais pas en format texte...


--_41baa2f95a11048881b178362ff976e6
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head></head>
<body>

<img src="cid:120428290347c7e617c1d40" border=0>

</body>
</html>

Voilà.. sinon sous ton conseil, j'ai corrigé pour les 2 remarques[/code]
 
Discussions similaires
Haut