Envoyer un email avec une pièce jointe

Avec l'utilisation de la fonction mail(), PHP permet très facilement d'envoyer un email depuis un serveur web. Ainsi, qu'il s'agisse de traiter un formulaire de contact, de développer un petit webmail voire un module de newsletter cette fonction s'avère simple et efficace. En revanche, lorsqu'il s'agit de pouvoir traiter l'envoi d'une pièce jointe, les choses ont tendance à se compliquer largement...

Mail() à fond

En effet, l'envoi d'un email multipart sachant transporter du texte et/ou du html accompagné d'un fichier de n'importe quel format (word, pdf, image...) implique la définition de 'header' complexe et la mise en place de 'frontière' permettant à l'email de s'afficher correctement.

Et, si on trouve ici ou là une multitude de script PHP plus ou moins opérationnel, il y a de fortes chances que votre pièces jointes arrive cryptée ou n'arrive pas du tout

Libmail, le tout-en-un du mail php

Libmail est là pour vous simplifier la vie ! Cette classe php, que vous pouvez télécharger ici intègre en effet tout ce donc avez besoin pour envoyer sans difficulté tout type d'email, du simple ou plus complexe. Bonne nouvelle, libmail se joue plutôt bien des filtres anti-spam. A la condition minimum de disposer une adresse au nom du serveur d'envoi (contact@domaine.com, expédié de www.domaine.com)...)

Exemple de script fonctionnel gérant l'envoi d'un document :

  • include "libmail.php";//placez dans le repertoire courant donc...
  • $m= new Mail; // demarre l'email
  • $m->From( "contact@domaine.com" );// enlever les guillements pour placer une variable
  • $m->To( "contact@destinaire.com );//idem
  • $m->Subject( "Email avec attachement" );//idem
  • $message= "Veuillez trouver ci-joint votre test de francais";
  • $m->Body( $message); // corps du message
  • $m->Cc( "contact@autredomaine.com");//facultatif
  • $m->Bcc( "cache@autredomaine.com");//facultatif
  • $m->Priority(4) ; // Priorité Basse
  • $m->Attach( "./testfr.doc", "application/msword" ) ; // définition du type mime du document joint image/gif
  • $m->Send(); // mail envoyé

En savoir plus sur MB Création :