Pièce jointe dans mail

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 : Pièce jointe dans mail

Re: Pièce jointe dans mail

par dudu60 » 02 avr. 2011, 21:00

Merci beaucoup, j'ai rajouté du code et cela marche

Maintenant quand je remplace la valeur du fichier en dur par $fichier, à l'ouverture du fichier joint au mail on me demande un convertisseur !!!

Mon nouveau code
<html>
<body>

<?php

if(isset($_POST['envoi']))  
	{
		$sujet=stripslashes($_POST["sujet"]);	
		
		$corps = stripslashes($_POST["corps"]); 
//		$corps=$_POST["corps"];	

		 $fichier = basename($_FILES['fichier_joint']['name']);

		
		echo "$fichier";
		
			
		$selection=$_POST["selection"];	

	if (empty ($_POST["selection"])) 
	
		{
		echo "<h3 align=center><strong>Vous devez remplir au moins un case</h3>";	
		
	    echo "<p align=center><a href=javascript:history.back(-1)>Retourner sur la Page Message</a></p>"; 
		}	
		else
		{

//----------------------------------
// Construction de l'entête
//----------------------------------
$boundary = "-----=".md5(uniqid(rand()));

// on génère un identifiant aléatoire pour le fichier
  $file_id  = md5( uniqid ( rand() ) ) . $_SERVER['SERVER_NAME'];

// on va maintenant lire le fichier et l'encoder
  $path = $fichier; // chemin vers le fichier
  $fp = fopen($path, 'rb');
  $content = fread($fp, filesize($path));
  fclose($fp);
  $content_encode = chunk_split(base64_encode($content));

  $headers  = "From: \"Hervé Dunoyer\"<[email protected]>\n";
  $headers .= "MIME-Version: 1.0\n";
  $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"";

  $message  = "Ceci est un message au format MIME 1.0 multipart/mixed.\n\n";
  $message .= "--" . $boundary . "\n";
  $message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
  $message .= "Content-Transfer-Encoding: 8bit\n\n";
  $message .= "\r\n";
  $message .= $corps;
  $message .= "\r\n";	
  $message .= "--" . $boundary . "\n";
  //$message .= "Content-Type: application/msword; name=\"Tuto_Lightroom.doc\"\n";
  $message .= "Content-Type: application/msword; name=\"$fichier\"n";
  $message .= "Content-Transfer-Encoding: base64\n";
  // mettez inline au lieu de attachment
  // pour que l'image s'affiche dans l'email
  $message .= "Content-Disposition: attachment; filename=\"Tuto_Lightroom.doc\"\n\n";
  $message .= $content_encode . "\n";
  $message .= "\n\n";
  $message .= "--" . $boundary . "--\n";

include ("../Connexion/connexion.php");	  
    
		foreach ($selection as $choix)
			{

		mail($choix, $sujet, $message, $headers);
			}
		echo "<h3 align=center><strong>Votre Newsletter a bien été envoyée</h3>";	
		echo "<p align=center><a href=javascript:history.back(-1)>Retourner sur la Page Message</a></p>"; 
		}
	
	}	
		
?>	


<?php

?>
</body>
</html>

Re: Pièce jointe dans mail

par Ryle » 02 avr. 2011, 16:40

Peut être faudrait-il joindre la pièce jointe à ton mail ;)

Tu récupères le contenu de ton fichier dans ta variable $content_encode, mais tu n'en fais rien :)

Pièce jointe dans mail

par dudu60 » 02 avr. 2011, 15:48

Bonjour,

Je cherche à envoyer un mail avec une pièce jointeLe mail parvient bien au destinataire mais pas la pièce jointe

Merci pour votre aide
<?php

require ("../Connexion/config.php");	

$expediteur   = $adminEmail"; 


if(isset($_POST['envoi']))  
	{
		$sujet=stripslashes($_POST["sujet"]);	
		
		$corps = stripslashes($_POST["corps"]); 
//		$corps=$_POST["corps"];	
		
			
		$selection=$_POST["selection"];	

	if (empty ($_POST["selection"])) 
	
		{
		echo "<h3 align=center><strong>Vous devez remplir au moins un case</h3>";	
		
	    echo "<p align=center><a href=javascript:history.back(-1)>Retourner sur la Page Message</a></p>"; 
		}	
		else
		{
			
 //----------------------------------
// Construction de l'entête
//----------------------------------

$boundary = "-----=".md5(uniqid(rand()));

// on génère un identifiant aléatoire pour le fichier
  $file_id  = md5( uniqid ( rand() ) ) . $_SERVER['SERVER_NAME'];
  
  // on va maintenant lire le fichier et l'encoder
  $path = 'Enfant_5.jpg'; // chemin vers le fichier
//  Content-Type: application/msword; name=\"nom_fichier\"\r\n
  $fp = fopen($path, 'rb');
  $content = fread($fp, filesize($path));
  fclose($fp);
  $content_encode = chunk_split(base64_encode($content));
  


$header  = "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$header .= "\r\n";

//--------------------------------------------------
// Construction du message proprement dit
//--------------------------------------------------

$msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";

//---------------------------------
// 1ère partie du message
// Le texte
//---------------------------------
$msg .= "--$boundary\r\n";
$msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
$msg .= "Content-Transfer-Encoding:8bit\r\n";
$msg .= "\r\n";
$msg .= $corps;
$msg .= "\r\n";			
			
		foreach ($selection as $choix)
			{
			mail($choix, $sujet, $msg, "Reply-to: $expediteur\r\nFrom: $expediteur\r\n".$header);
			
			}
		echo "<h3 align=center><strong>Votre Newsletter a bien été envoyée</h3>";	
		echo "<p align=center><a href=javascript:history.back(-1)>Retourner sur la Page Message</a></p>"; 
		
		
		 mail($expediteur, "Message envoyé Sujet :  $sujet", $msg, "Reply-to: $expediteur\r\nFrom: $expediteur\r\n".$header);
		

  

			
		}
	
	}	

?>