IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

comment envoyer un mail apres avoir valider un formulaire


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 26
    Points : 19
    Points
    19
    Par défaut comment envoyer un mail apres avoir valider un formulaire
    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
    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&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&amp;id=<?php echo $_GET["id"]; ?>">Confrimer</a></div></td>
                  </tr>
                </table></td>
              </tr>
        </table>
      </div>
    </form>
    </body>
    </html>
    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
    <?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);
    }
    ?>

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sujet = "COURRIER VENANT DU DIRECTEUR!";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //=====Création du header de l'e-mail.
    $header = "From: \"MECVG\"<soulzana@yahoo.fr>".$passage_ligne;

    Quand on envoie un mail, on est honnête. ça m'étonnerai que tu travailles pour yahoo et que yahoo fasse des mails internes en français.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/09/2008, 14h35
  2. Réponses: 2
    Dernier message: 07/01/2008, 17h31
  3. Comment envoyer un mail avec la commande mail
    Par pi3141563 dans le forum Réseau
    Réponses: 5
    Dernier message: 21/10/2004, 13h34
  4. [VB6] Comment envoyer un mail HTML par Winsocks ?
    Par hedgehog dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/05/2004, 10h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo