Envoyer une pièce jointe à un email en PHP

Pas mal de recherches pour envoyer une simple pièce jointe à un envoi mail() PHP… pour finalement tomber sur un petit bout de code efficace que je livre ici avec quelques (petites) retouches.
testé … et approuvé !
function mail_PJ($destinataire, $nomExpediteur, $mailExpediteur, $sujet, $corps, $fichier, $typemime, $nomPJ) {
// Les headers pour un mail multiparts
$headers= "MIME-Version: 1.0 ";
$headers.= "From: \"$nomExpediteur\" <$mailExpediteur> ";
$headers.= "Content-type: multipart/mixed; "; // Chaine permettant de différencier les différentes parties du mail
$limite = '_parties_'.md5(uniqid (rand()));
$headers.= " boundary=\"----=$limite\" ";// Première partie, corps du mail en HTML
$texte = "------=$limite ";
$texte.= "Content-type: text/html; charset=\"iso-8859-1\" ";
$texte.="<HTML><HEAD></HEAD><BODY>".nl2br($corps)."</BODY></HTML>";// Traitement pour attacher une PJ
// D'abord on lit le fichier
$contenu = file_get_contents($fichier);
$attachement = " ------=$limite ";
$attachement .= "Content-Type: $typemime; name=\"$nomPJ\" ";
$attachement .= "Content-Transfer-Encoding: base64 ";
$attachement .= "Content-Disposition: attachment; filename=\"$nomPJ\" ";// On joint le fichier en l'encodant en base 64
$attachement .= chunk_split(base64_encode($contenu));// enfin on envoie le mail
mail($destinataire, $sujet, $texte.$attachement, $headers);
}
EXEMPLE :
// Destinataire du mail
$destinataire = "fifi@fifi.com";
// Expéditeur
$nomExpediteur = "Toto"
$mailExpediteur = "toto@toto.com";
// sujet du mail
$sujet = "Test de mail PHP avec pièce jointe";
// texte du corps de mail
$corps = "Testé…";
$corps .= " …et approuvé !";
// caractéristiques de la pièce jointe
// dans cet exemple, il s’agit d’un fichier pdf, il faut mettre le bon mime type
// et le bon chemin relatif (ex Windows : $fichier = "c:\temp\son.wav";)
$typemime = "application/pdf";
$fichier = "test.pdf";
$nomPJ = "Plan.pdf";
mail_PJ($destinataire, $nomExpediteur, $mailExpediteur, $sujet, $corps, $fichier, $typemime, $nomPJ);
Source : ptit_mousse de Webrankinfo



Ce Script marche parfaitement … merci
Votre script marche très bien sur des pièces jointes au format Word (MIME : application/msword) mais ne fonctionne pas sur un fichier de type PDF (MIME : application/pdf).
ben voila je cherche ce script depuis des heures. Merci webtoolosa
Cela ne fonctionne pas.
? en principe, si
je l’ai testé et cela marche : il doit y avoir un autre pb, type blocage serveur ?