envoi de mail avec pièce jointe

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 : envoi de mail avec pièce jointe

Re: envoi de mail avec pièce jointe

par msi79 » 30 mars 2013, 19:30

merci de bien vouloir m'aider . si la fonction mail n'est pas appropriée quelle solution me proposes tu ?

pour revenir à mon probleme je veux savoir est-ce que je peux utiliser $_POST["NumEnreg"] dans ma clause WHERE comme dans ma requète ci-desous :
//requète pour recuperer le nom de l'image //AND servicecourrier.id_sc=$dernier_id
  $qt = mysql_query("SELECT renseigner.fichier_choisi,renseigner.id_victime,servicecourrier.id_sc,servicecourrier.NumEnreg,courrierimputation.NumEnreg,courrierimputation.monemail FROM renseigner , servicecourrier , courrierimputation  WHERE renseigner.id_victime=servicecourrier.id_sc AND servicecourrier.NumEnreg=courrierimputation.NumEnreg WHERE servicecourrier.NumEnreg ='".$_POST["NumEnreg"]."' ");

Re: envoi de mail avec pièce jointe

par moogli » 30 mars 2013, 14:11

salut,


quel est le problème exactement ?

as tu vérifié la taille des fichiers ? (les pièces jointes sont généralement limitées à 10 ou 20Mo mais parfois moins, a vérifer avec ton hébergeur).

si tu test en local sur ta machine, est ce que tu as un serveur mail de configuré et accessible via php ?

Ce que tu fait peux être apparenté a du mailing et ce comportement et souvent interdit par les hébergeurs, de plus la doc de la fonction mail indique clairment que mail n'est pas faite pour cela ;).


@+

envoi de mail avec pièce jointe

par msi79 » 29 mars 2013, 23:12

salut a tous . je voudrais envoyer des pièce jointe récupérées avec une requête mais ça passe pas . je voudrais de l'aide .
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.'<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 
        { 

// 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.'<br>'.mysql_error());
   echo 'Ok';
      }
		  if(!$result) {
		  $msg = 'erreur'; 
          echo '<script>alert(\' '.$msg.' \');</script>';
		  }else
	     {
		     $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','[email protected]'); 

//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,<br />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/pdf; 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>';
}
  }
 }
}
?>