Pièce jointe mail PHP

Fermé
dydyne783 Messages postés 7 Date d'inscription vendredi 17 mai 2013 Statut Membre Dernière intervention 26 mai 2014 - Modifié par dydyne783 le 20/05/2014 à 17:24
dydyne783 Messages postés 7 Date d'inscription vendredi 17 mai 2013 Statut Membre Dernière intervention 26 mai 2014 - 20 mai 2014 à 19:06
Bonjour,

Voici ce que je souhaiterai faire: j'aimerai envoyer une newsletter. Par conséquent j'ai créé un programme en php qui genere un code HTML que j'envoie à tous mes clients.
De plus, je souhaite ajouter une pièce jointe à ce mail. Malheureusement, le mail part parfaitement, l'affichage du mail HTML se fait très bien. Malheureusement il y a zero piece jointe au mail.
Je vous mets le code que j'ai qui permet d'envoyer le mail:

$mail = 'xxx@gmail.com'; // Déclaration de l'adresse de destination.
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui rencontrent des bogues.
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
//==========

$fichier = fopen("0-Bulletin_dinscription_version_Mars_2014.pdf", "r");
$attachement = fread($fichier, filesize("0-Bulletin_dinscription_version_Mars_2014.pdf"));
$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 = "Inscription session INTER SST/CHSCT: Offres de dernieres minutes!";
//=========


//=====Création du header de l'e-mail.
$header = "From: \"Promotion Flobel\"<xxx@flobel.fr>".$passage_ligne;
$header.= "Reply-to: \"Promotion Flobel\" <xxx@flobel.fr>".$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 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;
//==========

$message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne;


$message.= $passage_ligne."--".$boundary."--".$passage_ligne;


$message.= "Content-Type: application/pdf; name=\"0-Bulletin_dinscription_version_Mars_2014.pdf\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: base64".$passage_ligne;
$message.= "Content-Disposition: attachment; filename=\"0-Bulletin_dinscription_version_Mars_2014.pdf\"".$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);

Mon message HTML est contenu dans la variable $message_html.
Je vous remercie pour vos réponses.

PS: je précise que ce code est tiré du site du zero



A voir également:

1 réponse

mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
20 mai 2014 à 18:28
Bonjour,

Vous vous embêtez énormément!

Au lieu de mettre votre PDF en pièce jointe, vous mettez un lien HTML <a href..../a> qui dirige vers le fichier PDF qui lui reste sur le serveur....

A+
0
dydyne783 Messages postés 7 Date d'inscription vendredi 17 mai 2013 Statut Membre Dernière intervention 26 mai 2014
20 mai 2014 à 19:06
Merci mpmp93 pour la réponse!

Je souhaite vraiment mettre le fichier pdf en piece jointe. L'incorporer avec une balise <a></a> ne sera peut être pas vu par le destinataire, alors qu'avec une piece jointe c'est déjà assez visible (à condition qu'il comprenne le petit trombone à côté de l'objet du mail! ;) )
0