Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/03/2011, 10h25   #1
Invité de passage
 
Inscription : octobre 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 12
Points : 2
Points : 2
Par défaut Mail() : plusieurs pièces jointes

Bonjour

J'essaye d'envoyer deux pièces jointes avec la fonction mail(), mais à chaque fois une seule passe. Si je ne mets que la 2ème (donc une seule PJ) elle passe bien dans le mail.

J'ai sans doute une erreure de syntaxe au niveau du corps du mail mais je ne trouve pas. J'ai essayé d'en mettre une inline et l'autre en attachment mais ça ne change rien.

Voici le code PHP et le corps de mail généré :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
<?php $passage_ligne = "\n";
 
	//=====Ajout de la pièce jointe N°1.
 	if($_FILES["uploaded_file1"]["size"]>0){
		$message.= "Content-Type: ".$file_type1."; name=\"".$path_of_uploaded_file1."\"".$passage_ligne;
		$message.= "Content-Transfer-Encoding: base64".$passage_ligne;
		$message.= "Content-Disposition: inline; filename=\"".$path_of_uploaded_file1."\"".$passage_ligne;
		$message.= $passage_ligne.$attachement1.$passage_ligne.$passage_ligne;
		$message.= $passage_ligne."--".$boundary."--".$passage_ligne; 
	}
 
	$message.= "--".$boundary.$passage_ligne;
 
	//=====Ajout de la pièce jointe N°2.
 	if($_FILES["uploaded_file2"]["size"]>0){
		$message.= "Content-Type: ".$file_type2."; name=\"".$path_of_uploaded_file2."\"".$passage_ligne;
		$message.= "Content-Transfer-Encoding: base64".$passage_ligne;
		$message.= "Content-Disposition: attachment; filename=\"".$path_of_uploaded_file2."\"".$passage_ligne;
		$message.= $passage_ligne.$attachement2.$passage_ligne.$passage_ligne;
		$message.= $passage_ligne."--".$boundary."--".$passage_ligne; 
	}
?>

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
From: "xxxxxxx"<xxxx@xxxxxx.fr>
Reply-to: "xxxxxx" <xxxxxxxx@xxxxxxxxx.fr>
 
MIME-Version: 1.0
Content-Type: multipart/mixed;;
 boundary="-----=a3927ad2f2ddb15128ac64bb55f0c51d"
<br />
-----=a3927ad2f2ddb15128ac64bb55f0c51d
Content-Type: text/plain; charset="UTF-8"
 
(texte du mail) 
 
 
-------=a3927ad2f2ddb15128ac64bb55f0c51d
Content-Type: text/html; charset="UTF-8"
 
<html><head></head><body> 
(texte du mail) 
</body></html>
 
----
 
-------=3d6205f2771f86293584312e9ee40d02
Content-Type: file; name="upload/fichier1.rtf"
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="upload/fichier1.rtf"
 
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcY29jb2FydGYxMDM4XGNvY29hc3VicnRmMzUwCntcZm9u
dHRibFxmMFxmc3dpc3NcZmNoYXJzZXQwIEhlbHZldGljYTt9CntcY29sb3J0Ymw7XHJlZDI1NVxn
cmVlbjI1NVxibHVlMjU1O30KXHBhcGVydzExOTAwXHBhcGVyaDE2ODQwXG1hcmdsMTQ0MFxtYXJn
cjE0NDBcdmlld3c5MDAwXHZpZXdoODQwMFx2aWV3a2luZDAKXHBhcmRcdHg1NjZcdHgxMTMzXHR4
MTcwMFx0eDIyNjdcdHgyODM0XHR4MzQwMVx0eDM5NjhcdHg0NTM1XHR4NTEwMlx0eDU2NjlcdHg2
MjM2XHR4NjgwM1xxbFxxbmF0dXJhbFxwYXJkaXJuYXR1cmFsCgpcZjBcZnMyNCBcY2YwIG1vbiBD
Vn0=
 
 
 
-------=3d6205f2771f86293584312e9ee40d02--
-------=3d6205f2771f86293584312e9ee40d02
Content-Type: file; name="upload/fichier2.rtf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="upload/fichier2.rtf"
 
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcY29jb2FydGYxMDM4XGNvY29hc3VicnRmMzUwCntcZm9u
dHRibFxmMFxmc3dpc3NcZmNoYXJzZXQwIEhlbHZldGljYTt9CntcY29sb3J0Ymw7XHJlZDI1NVxn
cmVlbjI1NVxibHVlMjU1O30KXHBhcGVydzExOTAwXHBhcGVyaDE2ODQwXG1hcmdsMTQ0MFxtYXJn
cjE0NDBcdmlld3c5MDAwXHZpZXdoODQwMFx2aWV3a2luZDAKXHBhcmRcdHg1NjZcdHgxMTMzXHR4
MTcwMFx0eDIyNjdcdHgyODM0XHR4MzQwMVx0eDM5NjhcdHg0NTM1XHR4NTEwMlx0eDU2NjlcdHg2
MjM2XHR4NjgwM1xxbFxxbmF0dXJhbFxwYXJkaXJuYXR1cmFsCgpcZjBcZnMyNCBcY2YwIG1hIGxl
dHRyZSBkZSBtb3RpdmF0aW9ufQ==
 
 
 
-------=3d6205f2771f86293584312e9ee40d02--
AnatoleL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 11h13   #2
Invité de passage
 
Inscription : octobre 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 12
Points : 2
Points : 2
Bonjour

Je me permets de remonter ce post car le problème persiste, à chaque fois une seule pièce jointe (la 1ère) est incluse dans le mail.

Help !

Merci.
AnatoleL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 11h53   #3
Membre actif
 
Inscription : février 2009
Messages : 150
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 150
Points : 198
Points : 198
Salut,
Ca me parait louche vers les lignes 35 à 39, essaye deja juste avec 2 sauts de ligne voir (aulieu de 3).
nextdev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 14h23   #4
Invité de passage
 
Inscription : octobre 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 12
Points : 2
Points : 2
Merci mais j'ai essayé avec 2 puis 1 saut de ligne, même résultat.
AnatoleL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 15h09   #5
Membre actif
 
Inscription : février 2009
Messages : 150
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 150
Points : 198
Points : 198
D'autres choses semblent louche, mais essaye voir deja dans ce style :

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
----
 
-------=3d6205f2771f86293584312e9ee40d02
Content-Type: file; name="upload/fichier1.rtf"
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="upload/fichier1.rtf"
 
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcY29jb2FydGYxMDM4XGNvY29hc3VicnRmMzUwCntcZm9u
dHRibFxmMFxmc3dpc3NcZmNoYXJzZXQwIEhlbHZldGljYTt9CntcY29sb3J0Ymw7XHJlZDI1NVxn
cmVlbjI1NVxibHVlMjU1O30KXHBhcGVydzExOTAwXHBhcGVyaDE2ODQwXG1hcmdsMTQ0MFxtYXJn
cjE0NDBcdmlld3c5MDAwXHZpZXdoODQwMFx2aWV3a2luZDAKXHBhcmRcdHg1NjZcdHgxMTMzXHR4
MTcwMFx0eDIyNjdcdHgyODM0XHR4MzQwMVx0eDM5NjhcdHg0NTM1XHR4NTEwMlx0eDU2NjlcdHg2
MjM2XHR4NjgwM1xxbFxxbmF0dXJhbFxwYXJkaXJuYXR1cmFsCgpcZjBcZnMyNCBcY2YwIG1vbiBD
Vn0=
 
-------=3d6205f2771f86293584312e9ee40d02
Content-Type: file; name="upload/fichier2.rtf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="upload/fichier2.rtf"
 
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcY29jb2FydGYxMDM4XGNvY29hc3VicnRmMzUwCntcZm9u
dHRibFxmMFxmc3dpc3NcZmNoYXJzZXQwIEhlbHZldGljYTt9CntcY29sb3J0Ymw7XHJlZDI1NVxn
cmVlbjI1NVxibHVlMjU1O30KXHBhcGVydzExOTAwXHBhcGVyaDE2ODQwXG1hcmdsMTQ0MFxtYXJn
cjE0NDBcdmlld3c5MDAwXHZpZXdoODQwMFx2aWV3a2luZDAKXHBhcmRcdHg1NjZcdHgxMTMzXHR4
MTcwMFx0eDIyNjdcdHgyODM0XHR4MzQwMVx0eDM5NjhcdHg0NTM1XHR4NTEwMlx0eDU2NjlcdHg2
MjM2XHR4NjgwM1xxbFxxbmF0dXJhbFxwYXJkaXJuYXR1cmFsCgpcZjBcZnMyNCBcY2YwIG1hIGxl
dHRyZSBkZSBtb3RpdmF0aW9ufQ==
 
 
-------=3d6205f2771f86293584312e9ee40d02--
C'est quoi ce <br/> qui traine, et double ; vers ligne 6 ?
Réécrit bien ton header, et message, séparé.
nextdev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 15h21   #6
Invité de passage
 
Inscription : octobre 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 12
Points : 2
Points : 2
C'est réglé !

Le problème venait effectivement des sauts de ligne, il ne faut qu'un seul délimiteur+saut de ligne entre les deux pièces jointes:

$message .= "--".$boundary."\n";
AnatoleL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 15h29   #7
Membre actif
 
Inscription : février 2009
Messages : 150
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 150
Points : 198
Points : 198
Je pense qu'il y a des chances que ton message ne fonctionne pas partout malheureusement... également son alternative texte/html.

Ta structure des boundary est éventuellement à revoir.
nextdev est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h21.


 
 
 
 
Partenaires

Hébergement Web