Bonjour,
Su mon site, j'ai un formulaire avec la possibilité d'ajouter une PJ.
Ensuite je m'envoi le tout via mail.
J'ai juste un soucis, le mail arrive bien mais pas de PJ ....
Une idée ?
Ci-dessous mon code
HTML
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <form method="post" action="Data/Send.php" subject="Renseignements" enctype="multipart/form-data""> <table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: middle;" width: 30%;><div id="texte">Fichier (pdf ou doc) <font color="6c3306"><b>*</b></font> :</div></td> <td style="vertical-align: middle;" width: 70%;><boite><input id="IdMyFile" name="MyFile" type="file"></boite></td> </tr> </tbody> </table> <center> <input value="Envoyer" type=Button onClick="Verif(this.form)"> <input value="Effacer" name="reset" type="reset"> </center> </form>
Code JS
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 <script language="JavaScript"> function Verif (LeForm) { var on_envoie = true; var ErrorMsg = ""; if(on_envoie) { if (window.XMLHttpRequest){ MaFontion = new XMLHttpRequest();} else if (window.ActiveXObject) {MaFontion = new ActiveXObject('Microsoft.XMLHTTP');} else { alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); MaFontion = false; } MaFontion.open('POST',"Php/Send.php",true); MaFontion.onreadystatechange = function() { if (MaFontion.readyState == 4 && MaFontion.status==200) {document.getElementById ('LaReponse').innerHTML=''+MaFontion.responseText+'';} } MaFontion.setRequestHeader('Content-type','application/x-www-form-urlencoded'); MaFontion.send('test'); alert("Votre msg a bien été envoyée.\n"); LeForm.reset(); } else { alert("Le formulaire comporte des erreurs." + "\n\n" + "Veuillez ajouter :" + "\n\n" + ErrorMsg + "\n"); } } </script>
Code PHP (Send.php)
Code php : 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
72
73 <? ini_set('display_errors', 1); error_reporting(-1); $to = "mymail@gmail.com"; $name_file = $_FILES['MyFile']['name']; $source=$_FILES['MyFile']['tmp_name']; $extension=get_extension($name_file); $type="text/plain"; if($extension=="doc") { $type="text/vnd.ms-word"; } else if($extension=="pdf") { $type="text/vnd.ms-powerpoint"; } function get_extension($filename) { $parts = explode('.',$filename); $last = count($parts) - 1; $ext = $parts[$last]; return $ext; } //---------------------------------- // Construction de l'entête //---------------------------------- $boundary = "-----=".md5(uniqid(rand())); $header = "MIME-Version: 1.0\r\n"; $header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n"; $header .= "\r\n"; $msg .= "test\n"; $subject = "Renseignements"; if($name_file!="") { $file = $name_file; $fp = fopen($file, "rb"); echo "Fp : $fp\r\n"; $attachment = fread($fp, filesize($file)); echo "Attachment : $fp\r\n"; fclose($fp); $attachment = chunk_split(base64_encode($attachment)); $msg .= "--$boundary\r\n"; $msg .= "Content-Type: $type; name=\"$file\"\r\n"; $msg .= "Content-Transfer-Encoding: base64\r\n"; $msg .= "Content-Disposition: inline; filename=\"$file\"\r\n"; $msg .= "\r\n"; $msg .= $attachment . "\r\n"; $msg .= "\r\n\r\n"; $msg .= "--$boundary--\r\n"; $destinataire = $to; $expediteur = $Email; $reponse = $expediteur; mail($destinataire, $subject, $msg.$attachment,"From: $Email"); echo "Mail envoyé à $destinataire\r\n"; } if($name_file!="") { unlink($name_file); } ?>
Partager