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);
}
?>