Envoie d'un mail au format html avec plusieurs pieces jointes

Contenu du snippet

Le code permet d'envoyer un mail avec plusieurs pièces jointes

Source / Exemple :


//permet de définir les différentes parties du mail
$limite = "----=_Part_" . md5( uniqid ( rand() ) );

//headers du mail 
$mail_mime  = "MIME-Version: 1.0\r\n"; 
$mail_mime .= "Content-Type: multipart/mixed; 
	boundary=\"".$limite."\"\r\n"; 

//le corps du message(html)
//$texte_mail correspond a votre message au format html <html><head>.....</html>

$texte = "This is a multi-part message in MIME format.\n"; 
$texte .= "Ceci est un message est au format MIME.\n"; 

//défini la première partie du mail
$texte .= "--".$limite."\n"; 
$texte .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"; 
$texte .=  "Content-Transfer-Encoding: quoted-printable\n ";
$texte .= "Content-Disposition: inline \n\n ";
$texte .= $texte_mail;
$texte .= "\n\n";
$texte .= "\n\n";

//indice de boucle permettant d'ajouter tous les fichiers joints
$i=0;

//les fichiers joints a attacher
$attachement = '';

	
//Boucle permettant l'ajout de toutes les pieces jointes
while($i < sizeof($liste_fichier))
{
  //permet de récupérer l'extension du fichier afin de définir le type mime
  $longeur = strlen ($liste_fichier[$i]);
  $longeur -=3;

  //on vérifie l'extension
 /*
   Pour les besoins de mon formulaire je devait savoir si le fichier était un .doc ou un .pdf
   il suffit uniquement de modifier cette partie pour ajout n'importe quel type de fichier

  • /
if(substr($liste_fichier[$i],$longeur) == "doc") { $type = "application/msword"; } else $type = "application/pdf"; //on Ajout chaque parties suivantes du mail avec les pieces jointes $attachement .= "--".$limite."\n"; $attachement .= "Content-Type: ".$type." name=".$liste_fichier[$i]."\n"; $attachement .= "Content-Transfer-Encoding: base64\n"; $attachement .= "Content-Disposition: attachment; filename=".$liste_fichier[$i]."\n\n"; //On lit le fichier présent sur le serveur //"rb" permet de lire des fichiers en mode binaire (utile sous windows) $fd = fopen( $liste_fichier[$i], "rb" ); $contenu = fread( $fd, filesize( $liste_fichier[$i] ) ); //encodage en base64 pour que le fichier soit lisible $attachement .= chunk_split(base64_encode($contenu)); $i++; } //on ferme ensuite toutes les parties du mail $attachement .= "\n\n--".$limite."--\n\n"; if ( mail($mail,$objet,$texte.$attachement,$mail_mime) ) { //on affiche un message indiquant l'envoi du message echo '<p align="left"><font color="green"face="Arial, Helvetica, sans-serif">Demande envoyée </font></p>'; } else { //on affiche un message indiquant l'echec de l'envoi du message echo '<p align="left"><font color="red" face="Arial, Helvetica, sans-serif"> Echec de l\'envoi de la demande</font></p>'; }

Conclusion :


Voila !!!
j'ai pas mal galèrer pour trouver des aides sur le web donc j'en fait profiter ;)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.