salue a toute et a tous . j'ai bute sur un code d’envoi de mail .
je veux qu’après avoir valider un formulaire le destinataire soit prévenu par mail avec pièce jointe . qu'il a reçu un mail du directeur avec pièce jointe.
voici mes deux fichiers php
l'insertion s'effectue normalement mais le mail ne va pas.
imputation.php
AddImputation_F2.php
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206 <?php if(isset($_GET['id'])); $id = $_GET['id']; echo $id; ?> <?php $sql = ("SELECT NumEnreg FROM Courrierimputation ORDER BY id DESC LIMIT 1"); $q = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); while($row = mysql_fetch_assoc($q)){ echo "<div class='dernierIMPdernierENRG' align='center'> Dern_Enr_N°_".$row['NumEnreg']."</div>"; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Document sans titre</title> <link rel="stylesheet" href="style.css" /> <style type="text/css"> <!-- .Style2 {color: #0000FF} .Style8 {color: #330000; font-weight: bold; } --> </style> <script type="text/JavaScript"> <!-- function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } //--> </script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> <script type="text/javascript" src="functions/jquery.js"></script> <script type="text/javascript"> $(function(){ $("#formcom").submit(function(){ $("#loader").show(); /* pseudo = $(this).find("input[name=pseudo]").val(); */ /* this ==> ce formulaire*/ /*find() ==> trouver un element du formulaire Exp : le champ input*/ /*id,NumEnreg,dateArrCourrier,expediteur,destinataire,monemail,DateImput,delaisImput,instructions,autreInstruction,contact,NoteDirCab,NoteMinitr*/ NumEnreg = $(this).find("input[name=NumEnreg]").val(); dateArrCourrier = $(this).find("input[name=dateArrCourrier]").val(); expediteur = $(this).find("input[name=expediteur]").val(); var destinataire= $("#destinataire option:selected").val(); monemail = $(this).find("input[name=monemail]").val(); DateImput = $(this).find("input[name=DateImput]").val(); delaisImput = $(this).find("input[name=delaisImput]").val(); var instructions= $("#instructions option:selected").val(); autreInstruction = $(this).find("input[name=autreInstruction]").val(); contact = $(this).find("input[name=contact]").val(); NoteDirCab = $(this).find("textarea[name=NoteDirCab]").val(); NoteMinitr = $(this).find("textarea[name=NoteMinitr]").val(); /*Ici commence la partie Ajax*/ $.post("index.php?page=AddImputation_F2&id=<?php echo $id; ?>",{NumEnreg:NumEnreg,dateArrCourrier:dateArrCourrier,expediteur:expediteur,destinataire:destinataire,monemail:monemail,DateImput:DateImput,delaisImput:delaisImput,instructions:instructions,autreInstruction:autreInstruction,contact:contact,NoteDirCab:NoteDirCab,NoteMinitr:NoteMinitr},function(data){ $("#loader").hide(); if(data!="Ok"){ $(".error").empty().append(data); } else{ $("#resultatAjax").hide().append(nom+"? ?crit :<div class=\"motif\">"+motif+"</div>").slideDown(); /*$("#formcom").fadeOut();*/ /*Va fermer le formulaire*/ } }); return false; }); }); </script> <style> #feedback { display:none; } #loader { display:none; } .Style11 {font-size: 14px} .Style12 {font-family: "Times New Roman", Times, serif} .Style14 {font-family: "Times New Roman", Times, serif; font-style: italic; } </style> </head> <body onload="MM_preloadImages('image/images (1).jpg','image/téléchargement (1).jpg')"> <p> </p> <p> </p> <form id="formcom" method="post" action="#"> <div class="mesformIimput" align="center" > <table width="777" height="184" border="0" align="center" > <?php $query = mysql_query(" SELECT * FROM ServiceCourrier WHERE id_sc='".$id."' "); while($row = mysql_fetch_assoc($query)){ ?> <tr> <td bgcolor="#FFFFFF"><span class="Style12 Style8"><em>N° D’enregistrement du MECVG : </em></span></td> <td width="212" ><input name="NumEnreg" type="text" id="NumEnreg" size="25" value="<?php echo $row['NumEnreg']?>" disabled="disabled" /></td> </tr> <tr> <td bgcolor="#FFFFFF"><span class="Style12 Style8"><em>Date de réception : </em></span></td> <td ><input name="dateArrCourrier" type="text" id="dateArrCourrier" value="<?php echo $row['dateDuCourrier']?>" disabled="disabled"/></td> </tr> <tr> <td bgcolor="#FFFFFF"><span class="Style12 Style8"><em>Expéditeur : </em></span></td> <td colspan="2" bgcolor="#FFFFFF"><input name="expediteur" type="text" id="expediteur" size="50" value="<?php echo $row['nomExpediteur']?>" disabled="disabled"/></td> </tr> <?php } ?> <tr> <td width="254" bgcolor="#FFFFFF"><span class="Style12 Style8"><em>Destinataire : </em></span></td> <td ><span class="Style14"> <select name="destinataire" id="destinataire" style="size:auto"> <option ></option> <?php $req="SELECT nom_dest FROM destinateurs"; $res=mysql_query($req) or die("erreur dans la requête $req"); while ($tab=mysql_fetch_object($res)){ $nom_cat[]=$tab->nom_dest; for ($i=0;$i<count($nom_cat);$i++) echo "<option >$nom_cat[$i]</option>"; } ?> </select> </span></td> <td width="297" bgcolor="#FFFFFF"><table width="289" border="0"> <tr> <td width="67" class="Style14"><span class="Style8">Email :</span> </td> <td width="212" class="Style14"><input type="text" name="monemail" id="monemail" /></td> </tr> </table></td> </tr> <tr> <td bgcolor="#FFFFFF"><span class="Style12 Style8"><em>Délais : </em></span></td> <td ><input name="delaisImput" type="text" id="delaisImput" /></td> </tr> <tr> <td colspan="3" bgcolor="#FFFFFF"><div align="left" class="Style14"> <table width="473" border="0"> <tr> <td width="199" bgcolor="#FFFFFF"><span class="Style8">Instruction : </span></td> <td width="264" bgcolor="#FFFFFF"><span class="Style2"> <select name="instructions" id="instructions" style="size:auto"> <option ></option> <?php $req2="SELECT nom_instr FROM instructions"; $res2=mysql_query($req2) or die("erreur dans la requête $req"); while ($tab2=mysql_fetch_object($res2)){ $nom_cat2[]=$tab2->nom_instr; for ($i=0;$i<count($nom_cat2);$i++) echo "<option >$nom_cat2[$i]</option>"; } ?> </select> </span></td> </tr> <tr> <td bgcolor="#FFFFFF"><span class="Style8">Autre Instruction: </span></td> <td ><input name="autreInstruction" id="autreInstruction" type="text" size="45" /></td> </tr> </table> </div></td> </tr> <tr> <td colspan="3" bgcolor="#FFFFFF"><div align="left" class="Style14"><span class="Style8">Contact de la personne à imputer : </span> <input type="text" name="contact" id="contact" /> </div></td> </tr> <tr> <td colspan="3" bgcolor="#FFFFFF"> <table width="758" height="72" border="0"> <tr> <td width="325" class="Style14"><div align="center" class="Style8">OBSERVATION</div></td> <td width="323" class="Style12"> </td> </tr> <tr> <td class="Style12"><textarea name="NoteDirCab" id="NoteDirCab" cols="50" rows="3"></textarea></td> <td class="Style12"> </td> </tr> </table> </td> </tr> <tr> <td colspan="3" bgcolor="#FFFFFF"><table width="155" border="0" align="center"> <tr> <td width="79"><input type="submit" name="valider" value="Enregistrer" onClick="document.location='index.php?page=accuse-tacheEnAttentes&id=<?php echo $_GET["id"]; ?>'"/></td> <td width="66"><div class="confirmer"><a href="index.php?page=accuse-tacheEnAttentes&id=<?php echo $_GET["id"]; ?>">Confrimer</a></div></td> </tr> </table></td> </tr> </table> </div> </form> </body> </html>
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195 <?php extract($_POST); if(isset($_GET['id'])); $id = $_GET['id']; if(isset($NumEnreg) && !empty($NumEnreg)){ /*faut securiser*/ foreach($_POST as $k => $v){ $v=mysql_real_escape_string(strip_tags($v)); $_POST[$k]=$v; } $NumEnreg=trim($_POST["NumEnreg"]); $dateArrCourrier=trim($_POST["dateArrCourrier"]); $dateReinsert=trim($_POST["dateReinsert"]); $expediteur=trim($_POST["expediteur"]); $destinataire=trim($_POST["destinataire"]); $DateImput=trim($_POST["DateImput"]); $delaisImput=trim($_POST["delaisImput"]); $instructions=trim($_POST["instructions"]); $autreInstruction=trim($_POST["autreInstruction"]); $contact=trim($_POST["contact"]); $NoteDirCab=trim($_POST["NoteDirCab"]); $NoteMinitr=trim($_POST["NoteMinitr"]); $monemail=trim($_POST["monemail"]); //requète sql $sql = "SELECT NumEnreg FROM Courrierimputation WHERE NumEnreg='$NumEnreg'"; $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); // on compte le nombre de résultats $res = mysql_num_rows($req); if($res!=0) // l'url existe déjà, on affiche un message d'erreur { $msg = 'Désolé, mais ce numero existe déjà dans notre base.'; echo '<script>alert(\' '.$msg.' \');</script>'; } else // L'url n'existe pas, on insère les informations du formulaire dans la table { // Génération de la clef d'activation $caracteres = array("a", "b", "c", "d", "e", "f", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9); $caracteres_aleatoires = array_rand($caracteres, 8); $clef_activation = ""; foreach($caracteres_aleatoires as $i) { $clef_activation .= $caracteres[$i]; } // insertion de l'ex-combattants $sql = "INSERT INTO Courrierimputation( id,NumEnreg,dateArrCourrier,expediteur,destinataire,monemail,DateImput,delaisImput,instructions,autreInstruction,contact,NoteDirCab,NoteMinitr,clef) VALUES('','".$NumEnreg."','".$dateArrCourrier."','".$expediteur."','".$destinataire."','".$monemail."','".date("Y-m-d")."','".$delaisImput."','".$instructions."','".$autreInstruction."','".$contact."','".$NoteDirCab."','".$NoteMinitr."','".$clef_activation."')"; // on insère les informations du formulaire dans la table $result= mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); $id_insert = mysql_insert_id(); echo $id_insert; echo 'Ok'; } if($result) { $q = mysql_query("SELECT a.id_sc, a.NumEnreg, a.dateArriveCourrier, a.nomExpediteur, a.dateDuCourrier, a.Numorigine, a.objetCourrier, a.accuseEnAttente, a.accuseEnCours, b.id, b.fichier_choisi, c.id, c.NumEnreg, c.dateArrCourrier, c.expediteur, c.destinataire, c.monemail, c.DateImput, c.delaisImput, c.instructions, c.autreInstruction, c.contact, c.NoteDirCab FROM ServiceCourrier a, renseigner b,Courrierimputation c WHERE a.id_sc=b.id_victime AND a.NumEnreg=c.NumEnreg AND a.id_sc = '".$id."' "); // requete if (!$q) { echo 'Impossible d\'exécuter la requête : ' . mysql_error(); exit; } while ($row = mysql_fetch_assoc($q)) { //variable a utiliser dans l'envoie du mail $monImage = $row['fichier_choisi'] ; $mail = $row['monemail'] ; $num = $row['NumEnreg'] ; //parametre d'envoie du mail ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); ini_set('SMTP', 'smtp.xxxx.xx'); ini_set('smtp_port', 25); ini_set('sendmail_from', 'xxxxxxx@xxxx.xx'); // To if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui présentent des bogues. { $passage_ligne = "\r\n"; } else { $passage_ligne = "\n"; } //=====Déclaration des messages au format texte et au format HTML. $message_txt = "Le courrier N° ".$num."vous est imputé . Veuillez l'ouvvir et suivre les instruction . merci ."; $message_txt .= "Pour confirmer la reception du courrier, Veuillez cliquer sur le lien suivant :\n"; $message_txt .= "http://localhost/GESTION COURRIER MINISTERE_email_AJAX_TEST_Ac_Rec"; $message_txt .= "/accuse-Recept-Mess.php?id=".$id; $message_txt .= "&clef=" . $clef_activation; $message_html = "<html><head></head><body><b>Salut !</b>, Ce courrier vous est imputé . Veuillez l'ouvvir et suivre les instruction . merci .<i></i>.</body></html>"; $message_html .= "Pour confirmer la reception du courrier, Veuillez cliquer sur le lien suivant :\n"; $message_html .= "http://localhost/GESTION COURRIER MINISTERE_email_AJAX_TEST_Ac_Rec"; $message_html .= "/index.php?page=accuse-Recept-Mess&=".$id; $message_html .= "&clef=" . $clef_activation; //======== //=====Lecture et mise en forme de la pièce jointe. $fichier = fopen($monImage, "r"); $attachement = fread($fichier, filesize($monImage)); $attachement = chunk_split(base64_encode($attachement)); fclose($fichier); //========== //=====Création de la boundary. $boundary = "-----=".md5(rand()); $boundary_alt = "-----=".md5(rand()); //========== //=====Définition du sujet. $sujet = "COURRIER VENANT DU DIRECTEUR!"; //========= //=====Création du header de l'e-mail. $header = "From: \"MECVG\"<soulzana@yahoo.fr>".$passage_ligne; $header.= "Reply-to: \"MECVG\" <".$mail.">".$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; //=====Ajout de la pièce jointe. $message.= "Content-Type: image/jpeg; name=\"".$monImage."\"".$passage_ligne; $message.= "Content-Transfer-Encoding: base64".$passage_ligne; $message.= "Content-Disposition: attachment; filename=\"".$monImage."\"".$passage_ligne; $message.= $passage_ligne.$attachement.$passage_ligne.$passage_ligne; $message.= $passage_ligne."--".$boundary."--".$passage_ligne; //========== //=====Envoi de l'e-mail. mail($mail,$sujet,$message,$header); //========== } } }else { $msg = "Vous n avez pas tapé le bon numero"; echo utf8_encode($msg); } ?>
Partager