Bonjour tout le monde,

J'essaie d'envoyer un email avec attaché en PHP mais l'email n'arrive jamais.

Hier, j'envoyais des emails sans attachment et cela fonctionnait parfaitement.

Je suis sûr de mes valeurs $_FILES, $_POST car des var_dump m'indique que les variables contiennent quelque chsoe.

Voici tout d'abord le code d'envoi de l'email :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 
<?php
 
	var_dump($_FILES);
	var_dump($_POST);
 
 
	$mail = 'monemail@gmail.com'; // Dclaration de l'adresse de destination
	if (preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // O,n filtre les serveurs qui bugs
	{
		$passage_ligne = "\r\n";
	}
	else
	{
		$passage_ligne = "\n";
	}
	//=====Déclaration des messages au format texte et au format HTML
	$message_txt = "Salut à tous, voici un e-mail envoyé par un script PHP.";
	//=====Dclaration des messages au format texte et au format HTML
	$message_html = "<html><head></head><body>Bonjour,</br></br> Une nouvelle petite annonce a &eacute;t&eacute; post&eacute;e sur votre site (http://www.vetecocquereaux.be) : </br></br>";	
	$message_html.= "Choix de cat&eacute;gorie : ".$_POST['choix_annonce']."</br>";
	$message_html.= "Nom : ".$_POST['annonce_nom']."</br>";
	$message_html.= "Pr&eacute;nom : ".$_POST['annonce_prenom']."</br>";
	$message_html.= "T&eacute;l&eacute;phone : ".$_POST['annonce_telephone']."</br>";
	$message_html.= "e-mail : ".$_POST['annonce_email']."</br>";
	$message_html.= "Texte de l'annonce : ".$_POST['annonce_texte']."</br>";
 
	$message_html.= "</body></html>";
	//==========
	//==========
	//=====Lecture et mise en forme de la pièce jointe
	$fichier = fopen($_FILES['annonce_photo']["tmp_name"], "r");
	$attachement = fread($fichier, filesize($_FILES['annonce_photo']["tmp_name"]));
	$attachement = chunk_split(base64_encode($attachement));
	fclose($fichier);
	//==========
	//=====Création de la boundary
	$boundary = "-----=".md5(rand());
	$boundary_alt = "-----=".md5(rand());
	//==========
	//=====Dfinition du sujet
	$sujet = "Nouvelle annonce sur votre site http://www.vetecocquereaux.be";
	//=========
	//=====Cration du header de l'e-mail
	$header = "From: \"http://164/Cocquereaux\"<monemail@gmail.com>".$passage_ligne;
	$header.= "Reply-to: \"unknow\" <monEmail@gmail.com>".$passage_ligne;
	$header.= "MIME-Version: 1.0".$passage_ligne;
	$header.= "Content-Type: multipart/mixed;".$passage_ligne."
	boundary=\"$boundary\"".$passage_ligne;
	//==========
	//=====Création du message
	$message = $passage_ligne."--".$boundary.$passage_ligne;
	$message.= "Content-Type: multipart/alternative;".$passage_ligne." 
	boundary=\"$boundary_alt\"".$passage_ligne;
	$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
	//=====Ajout du message au format texte
	$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
	$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
	$message.= $passage_ligne.$message_txt.$passage_ligne;
	//==========
	$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
	//=====Ajout du message au format HTML
	$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
	$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
	$message.= $passage_ligne.$message_html.$passage_ligne;
	//==========
	//=====On ferme la boundary alternative
	$message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne;
	//==========
	$message.= $passage_ligne."--".$boundary.$passage_ligne;
?>
Voici le contenu de $_FILES['annonce_photo'] :

array(1) { ["annonce_photo"]=> array(5) { ["name"]=> string(33) "JCVire2.ulb.julb.mi.sol.la.do.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(21) "C:\wamp\tmp\php92.tmp" ["error"]=> int(0) ["size"]=> int(236317) } }
edit : J'avais oublié ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
mail($mail,$sujet,$message,$header);
Sans ça, pas d'envoi

Autre problème.

Je reçois l'email mais sans l'attachement.

En fait, j'ai un fichier txt comme attaché (au lieu d'une image) et quand

j'ouvre ce fichier txt, j'obtiens ce message :

Cette pièce jointe est vide.
Veuillez vérifier avec l'expéditeur.
Il arrive que des logiciels pare-feu et antivirus détruisent les pièces jointes.
Merci d'avance pour votre aide.

beegees