Envoyer un email en PHP - Tutoriel pour Webmasters  

Accueil > Tutoriels pour Webmasters > Envoyer un email en PHP

Envoyer un email en PHP

Le langage PHP permet d'envoyer des email facilement grâce à la fonction mail(). Ce tutoriel va expliquer comment envoyer facilement un email grâce à cette fonction. Plusieurs codes seront fournit pour envoyer des emails basiques, ou au format HTML ou encore avec des en-têtes supplémentaires qui permettent de faire des emails qui passent plus facilement les filtres anti-spam.

Prérequis

Il est nécessaire d'avoir un espace web et de savoir comment créer une page en PHP. L'idéal est d'avoir des notions en PHP pour comprendre les codes données ci-après.

Envoyer un email au format texte basique

Le code PHP ci-dessous permet d'envoyer un email basique à n'importe quelle adresse email.

  1. span style="color: #ff0000;">'contact@example.com';
  2. // Adresse email du destinataire
  3. $sujet = 'Titre du message';
  4. // Titre de l'email
  5. $message = 'Bonjour. Ceci est un message qui sera envoyé par email. Au revoir.';
  6. // Contenu du message de l'email
  7. // Fonction principale qui envoi l'email
  8. 'Email envoyé!'

Les trois variables $destinataire, $sujet et $message contiennent les principales informations (à personnaliser) de l'email.

Envoyer un email au format HTML

Alors que le code présenté dans le chapitre ci-dessus est très basique, l'autre code, présenté ci-dessous est au format HTML pour pouvoir personnaliser et agrémenter le message (ajouter des images, un design ...).

  1. span style="color: #808080; font-style: italic;">// Adresse email du destinataire
  2. $destinataire = 'contact@example.com';
  3.  
  4. // Titre de l'email
  5. $sujet = 'Titre du message';
  6.  
  7. // Contenu du message de l'email
  8. $message = '<html>';
  9. $message .= '<head><title>Titre du message</title></head>';
  10. $message .= '<body><p>Contenu du message. Les balises <strong>HTML</strong> peuvent être utilisée.</p></body>';
  11. $message .= '</html>';
  12.  
  13. // Pour envoyer un email HTML, l'en-tête Content-type doit être défini
  14. 'MIME-Version: 1.0'."\r\n"'Content-type: text/html; charset=iso-8859-1'."\r\n";
  15.  
  16. // Fonction principale qui envoi l'email
  17. 'Email envoyé!'

Le code est presque similaire mis à part que le message contient du code HTML et que la variables $headers contient un entête qui définie le type de l'email comme étant du code HTML.

Ajouter des en-têtes additionnels

Grâce aux en-têtes de l'email, il est possible d'améliorer l'envoi d'email par PHP. Il est possible d'améliorer le contenu de la variable $headers grâce à ce code:

  1. span style="color: #ff0000;">'MIME-Version: 1.0'."\r\n"'Content-type: text/html; charset=iso-8859-1'."\r\n";
  2.  
  3. // Votre adresse email (à personnaliser)
  4. 'From: "Votre Nom et Prénom"<contact@example.com>'."\n";
  5.  
  6. // Votre adresse email (à personnaliser)
  7. 'Reply-To: contact@example.com'."\n";
  8. .
  9. // Lorsque le destinataire cliquera sur "répondre", par défaut l'adresse email de "reply-to" sera utilisée

Cet exemple n'utilise que quelques en-têtes. Il en existe d'autres pour divers objectifs mais ceux présentés sont les plus courant.
En installant et testant ces codes, vous êtes maintenant capable d'envoyer un email avec PHP.