comment envyer un mail apres avoir valider un formulaire
Posté : 27 mars 2013, 16:35
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
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
<?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>
AddImputation_F2.php
<?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', '[email protected]');
// 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_insert;
$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_insert;
$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\"<[email protected]>".$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);
}
?>