comment envyer un mail apres avoir valider un formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : comment envyer un mail apres avoir valider un formulaire

comment envyer un mail apres avoir valider un formulaire

par msi79 » 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
<?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&eacute;l&eacute;chargement (1).jpg')">
<p>&nbsp;</p>
<p>&nbsp;</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&deg; D&rsquo;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&eacute;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&eacute;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&eacute;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 &agrave; 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">&nbsp;</td>
                  </tr>
                  <tr>
                    <td class="Style12"><textarea name="NoteDirCab" id="NoteDirCab" cols="50" rows="3"></textarea></td>
                    <td class="Style12">&nbsp;</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);
}
?>