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 :
Voici le contenu de $_FILES['annonce_photo'] :
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 été postée sur votre site (http://www.vetecocquereaux.be) : </br></br>"; $message_html.= "Choix de catégorie : ".$_POST['choix_annonce']."</br>"; $message_html.= "Nom : ".$_POST['annonce_nom']."</br>"; $message_html.= "Prénom : ".$_POST['annonce_prenom']."</br>"; $message_html.= "Télé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; ?>
edit : J'avais oublié ceci :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) } }
Sans ça, pas d'envoi
Code : Sélectionner tout - Visualiser dans une fenêtre à part mail($mail,$sujet,$message,$header);
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 :
Merci d'avance pour votre aide.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.
beegees
Partager