Envoi de mail avec pièce jointe recupérée avec une requète

Signaler
Messages postés
229
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
25 juillet 2013
-
salut je voudrais envoyer un mail avec des informations issues de ma requète dont un fichier mais j'arrive pas . aucun message d'erreur.
voici mon code :
<?php
extract($_POST);
if(isset($NumEnreg) && !empty($NumEnreg)){
    
      /*IMPORTANT*/ 


/*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"]);
    $contact=trim($_POST["contact"]);
$monemail=trim($_POST["monemail"]);
$compteRedu=trim($_POST["compteRedu"]);
 //requète sql
    $sql = "SELECT NumEnreg FROM cr WHERE NumEnreg='$NumEnreg'"; 
    $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.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 
        { 

// insertion de l'ex-combattants
 $sql = "INSERT INTO cr(      id,NumEnreg,dateArrCourrier,expediteur,destinataire,monemail,DateImput,contact,compteRedu,monpseudo)																																																																																																																																																																																				VALUES('','".$NumEnreg."','".$dateArrCourrier."','".$expediteur."','".$destinataire."','".$monemail."',NOW(),'".$contact."','".$compteRedu."','".$_SESSION['pseudo']."')";
      // on insère les informations du formulaire dans la table  
    $result= mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());
   echo 'Ok';
      }
  if($result) 
     {
     $q = mysql_query("SELECT a.id,a.NumEnreg,a.destinataire,a.monemail,b.fichier_choisi,b.id_victime FROM cr a,renseigner2 b where NumEnreg='".$_POST['NumEnreg']."' AND a.id=b.id_victime "); // requete 
  if (!$q) {
                         echo 'Impossible d\'exécuter la requête : ' . mysql_error();
                         exit;
                       }
while ($row = mysql_fetch_assoc($q)){

// variable a utiliser pur le mail
$num = $row['NumEnreg'];
$mail = $row['monemail'];
$destinataire = $row['destinataire'];
$fichier = $row['fichier_choisi'];//nom du fichier
//parametre de connection
ini_set('error_reporting', E_ALL); 
ini_set('display_errors', 1); 
ini_set('SMTP', 'smtp.aviso.ci'); 
ini_set('smtp_port', 25); 
ini_set('sendmail_from','cabinetvictimesdeguerre@aviso.ci'); 

//code du mail

// On va dabors définir le fichier à envoyer et à qui
//$fichier = 'mon_fichier.pdf';
//$destinataire = 'mon_client@son_fai.fr';
$sujet = 'COURRIER POUR LE CR';
// On créer un boundary unique
$boundary = md5(uniqid(rand(), true));
// On met les entêtes
$entetes = 'Content-Type: multipart/mixed;'."n".' boundary="'.$boundary.'"';
$body = 'This is a multi-part message in MIME format.'."n";
$body .= '--'.$boundary."n";
// ici, c'est la première partie, notre texte HTML (ou pas !)
// Là, on met l'entête
$body .= 'Content-Type: text/html; charset="UTF-8"'."n";
// On peut aussi mettres les autres (voir à la fin)
$body .= "n"
// On remet un deuxième retour à la ligne pour dire que les entêtes sont finie, on peut afficher notre texte !
$body .= 'Bonjour,
Voici  le CR du courrier N°'.$num.'ci-joint ';
// Le texte est finie, on va faire un saut à la ligne
$body .= "n";
// Et on commence notre deuxième partie qui va contenir le PDF
$body .= '--'.$boundary."n";
// On lui dit (dans le Content-type) que c'est un fichier PDF
$body .= 'Content-Type: application/jpg; name="'.$fichier.'"'."n";
$body .= 'Content-Transfer-Encoding: base64'."n";
$body .= 'Content-Disposition: attachment; filename="'.$fichier.'"'."n";
// Les entêtes sont finies, on met un deuxième retour à la ligne
$body .= "n";
$source = file_get_contents($fichier);
$source = base64_encode ($source);
$source = chunk_split($source);
$body .= $source;
// On ferme la dernière partie :
$body .= "n".'--'.$boundary.'--';
// On envoi le mail :
if(mail($destinataire, $sujet, $body, $entetes)){
$msg = 'le courrier pour le CR est envoyé'; 
echo '<script>alert(\' '.$msg.' \');</script>';
}else{
$msg = 'Blèm d\'envoi du courrier'; 
echo '<script>alert(\' '.$msg.' \');</script>';
}
  }
 }

?>


et ma page ajax qui contien mon formulaire
<?php
//include('functions/declarant.func.php');
include('body/header.php');
include('body/menu.php');
?>
<!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="css/style.css" />
<style type="text/css">
<!--
.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
</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="css/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(); 
var expediteur= $("#expediteur option:selected").val();
destinataire = $(this).find("input[name=destinataire]").val(); 
monemail = $(this).find("input[name=monemail]").val(); 
DateImput = $(this).find("input[name=DateImput]").val(); 
contact = $(this).find("input[name=contact]").val(); 
compteRedu = $(this).find("textarea[name=compteRedu]").val();
/*Ici commence la partie Ajax*/
$.post("index.php?page=AddImputation_cr",{NumEnreg:NumEnreg,dateArrCourrier:dateArrCourrier,expediteur:expediteur,destinataire:destinataire,monemail:monemail,DateImput:DateImput,contact:contact,compteRedu:compteRedu},function(data){
 $("#loader").hide();
if(data!="Ok"){
  $(".error").empty().append(data);
}
 else{
  $("#resultatAjax").hide().append(nom+"? ?crit :
"+motif+"
").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}
.Style16 {font-family: "Times New Roman", Times, serif; font-style: italic; font-weight: bold; }
.Style18 {color: #330000}
</style>
</head>


 


<form id="formcom"  method="post" action="">


N°d&rsquo;enregistrement    du CR : ,
,

----

Date de réception : ,
,

----

Expéditeur : ,

<select name="expediteur" id="expediteur" style="size:auto">
<option ></option>
<?php
$req="SELECT DISTINCT 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>
,

----

Destinataire : ,
,
<table width="289" border="0">
----, Email : </td>

</td>
          </tr>
          
          
          
          <tr>
            <td colspan="3" bgcolor="#FFFFFF">
Contact du destinateur : 
                
            
</td>
          </tr>
          <tr>
            <td colspan="3" bgcolor="#FFFFFF">Veuillez Saisir Votre Compte Rendu : ,
<textarea name="compteRedu" id="compteRedu" cols="75" rows="10"></textarea>
</td>
          </tr>
          
          <tr>
            <td colspan="3" bgcolor="#FFFFFF">,
<table width="200" border="0">
----,

Modifier

</td>
Supprimer
</td>
                </tr>
            </table>              </td>
          </tr>
    </table>
  

</form>

</html>