Programmation Tutoriel PHP

Comment envoyer des mails avec PHP PHPMailer

Par Darty | 15/08/2019


3.01k hits...

Partager cet article

Translate this page


Avez-vous besoin d'envoyer des emails à partir de votre site web PHP ?

Ce guide (mis à jour en 2019) vous expliquera comment manipuler la bibliothèque de messagerie PHP la plus utilisée : PHPMailer.

En apprenant à envoyer des courriels, votre code PHP passera au niveau supérieur. Vous serez en mesure d'écrire un démon d'alerte, de recevoir un email lorsqu'un utilisateur tentera de se connecter et bien plus encore.

Ce tutoriel couvre tout ce que vous devez savoir : les étapes d’installation, les fonctions de la classe, l’utilisation de l’authentification SMTP (y compris Gmail), la gestion des erreurs, etc. Vous trouverez également de nombreux exemples de code.

Pourquoi utiliser PHPMailer ?

PHPMailer offre de nombreuses fonctionnalités par rapport à la fonction de base PHP mail(), notamment le cryptage et l’authentification SMTP SSL, les messages HTML, les pièces jointes, etc.

En plus de cela, PHPMailer est beaucoup plus facile à utiliser que mail() et fournit une syntaxe propre, lisible et orientée objet.

Voyons plus en détail pourquoi vous devriez utiliser PHPMailer au lieu de mail() ou d’autres bibliothèques tierces.

Pourquoi utiliser PHPMailer au lieu de mail() ?

Pour au moins deux bonnes raisons.

La première est que mail() s'appuie sur le sous-système de messagerie du serveur pour fonctionner. Cela signifie que si vous souhaitez modifier certains paramètres tels que le serveur SMTP ou les paramètres d'authentification, vous devez le faire pour tout le système.

C’est généralement une opération assez difficile, et à moins d’avoir un serveur dédié ou un environnement de développement PHP local, vous n’êtes probablement même pas autorisé à le faire.

Cela rend également presque impossible l'utilisation de différentes configurations en même temps, par exemple en utilisant plusieurs comptes SMTP et en basculant entre eux par programme.

Comme vous le verrez dans une minute, avec PHPMailer, il est très facile de modifier n’importe quel paramètre de manière dynamique dans votre script PHP.

La deuxième raison est que mail() n’offre aucune fonctionnalité avancée.

mail() convient très bien pour l’envoi des mails simples en texte brut, mais c’est très limitant si vous devez faire plus que cela. Par exemple, avec mail(), il est très difficile d’ajouter des pièces jointes alors qu’avec PHPMailer, il ne s’agit que d’une ligne de code.

Y a-t-il des altérnatives de PHPMailer ?

Oui, il existe d'autres bibliothèques telles que Zend Mail, SwiftMailer et Zeta Components Mail ; mais PHPMailer est généralement le premier choix en raison de sa popularité.

Bien sûr, si vous connaissez déjà une autre bibliothèque de courrier et que cela fonctionne bien pour vous, vous pouvez vous en tenir à cela.

Mais si vous souhaitez commencer à utiliser l’un d’eux et qu’il vous faille choisir lequel choisir, PHPMailer est probablement le meilleur choix car c’est le plus utilisé.

Je dois également mentionner que j'utilise PHPMailer sur tous mes sites depuis quelques mois maintenant, en envoyant jusqu'à 100 emails par jour. Je l’utilise pour envoyer des alertes, pour rester en contact avec vous mes fidèles lecteurs lorsqu'il y a du nouveau sur le site.

Autant que je me souvienne, je n’ai jamais eu de problèmes avec ça, alors il est fort probable que vous ne le ferez pas non plus.


Avant toute manipulation, vous devez d'abord installer PHPMailer sur votre site. Pour l'installer, il suffit tout simplement de copier/coler le dossier qui contient les classes PHPMailer qui vous permettront de communiquer avec votre serveur SMTP.

Télécharger la version 5 Stable de PHPMailer

Télechargez et décompresser l'archive puis copier-coller le dossier PHPMailer à la racine de votre site pour avoir le chemin d'accès suivant : www.votresite.com/PHPMailer

Une fois PHPMailer installé, voyons alors comment envoyer notre premier mail facilement. Dans ce tutoriel, nous allons voir comment utiliser PHPMailer avec l'alias mail du sous système d'un serveur en ligne (du genre contact@monsite.com) mais aussi avec une adresse Gmail (du genre nomdutilisateur@gmail.com).

1. Envoyer des mails avec l'alias mail du sous système smtp d'un serveur en ligne

PHPMailer vous permet de configurer les paramètres de connexion SMTP directement à partir de votre script PHP, à l'aide des méthodes et des attributs de la classe PHPMailer.

Ceci est incroyablement utile par rapport à la fonction mail(), qui repose plutôt sur la configuration du système SMTP sous-jacent.

L'exemple suivant montre comment utiliser un serveur SMTP spécifique à l'aide de SSL et de l'authentification. Le script vous allez le coller dans le ficher testmail.php ou autre nom que vous voullez.

Explications du code

Ce script tel qu'il est ne peux pas fonctionner !. Mais pourquoi ?
==> Tout simplement l'adresse du derveur smtp, l'alias mail et le mot de passe mis sont des informations qui correspondent à aucun compte Mail.
Pour le faire conctionner il nous faut les information pour de votre adresse mail pour que PHPMailer arrive à envoyer le mail avec votre adresse mail !!. Dans notre cas, ces informations sont données dans votre CPANEL de votre compte chez votre hebergeur. Dans votre page d'accueil du CPANEL, ellez dans la section Mail, puis Alias Mail (pour certains hebergeurs). Par là, vous serez en mesure de voir toutes les adresses mail que vous avez déjà crée, mais si ce n'est pas encore le cas, vous pouvez en créer une !

Une fois l'alias mail réperé, il est alors temps de récuperer les informations de connexion de votre alias Mail. Pour cela, il va juste valloir cliquer à la droire de l'alias mail pour afficher les détailles de l'adresse. C'est dans ces ses infos là que vous allez trouver les éléments requis pour vous connecter à votre sous système serveur smtp.

Pour nous, les infos dont nous avons besoin sont les suivantes :

  • Type de sécurité (SSL ou TLS) (1)
  • Serveur de mail sortant (2)
  • Le port (3)
  • Nom d'utilisateur du serveur de mail (4)
  • Et le mot de passe pour de connecter à l'adresse mail (5)

Connectons alors le serveur à notre PHPMailer !

Dans le code ci-desous, vous avez constaté que certains mots sont en surbrillane pour signifier que ce sont des éléments que vous allez modifier en fonction des informations de connexion à votre alias Mail.

Voici comment affecter ces informations dans le script PHP.

  1. Dans le premier élément en surbrillance dans le code ci-dessous, il s'agit du type de sécurité sur votre serveur (1)
  2. Deuxièmement, il s'agit du HOST. Le serveur auquel votre adresse Mail est hosté. (2)
  3. Après c'est le port. C'est le port du serveur SMTP. (3)
  4. Par la suite, il nous faut alors indiquer à PHPMailer l'adresse email qui va envoyer le mail. Dans notre cas, c'est l'Alias mais sur votre serveur. (4)
  5. Alors, nous devons ajouter le mot de passe de l'alias mail (adresse mail) (5)
  6. Pour finaliser, vous devez alors mettre l'adresse du destinataire affectant ce dernier à la variable $to.
  7. Le dernier élément en surbrillance, vous allez tout simplement l'affecter à votre alias mail.

Si tout a été remplacé et connecté avec des vraies information du serveur SMTP, alors notre script peut envoyer un mail à l'adresse du destinataire indiqué.

2. Envoyer des mails avec une adresse GMAIL

Si vous avez compris comment PHPMailer fonctionne avec un sous système sur un serveur en ligne vous avez déjà fini ! Car avec Gmail rien de grand va changer. Ce qui change à ce stade c'est seulement le Hote (L'adresse du serveur SMTP), le port et le type de sécurité.

Le serveur SMTP de Google est smtp.gmail.com. Il utilise des connexions chiffrées par le type de sécurité ssl et écoute le port 465.

Voilà la seule différence.
Quand à l'adresse mail, mettez tout simplement votre adresse Gmail et son mot de passe pour la connexion.

Les serveurs SMTP exigent généralement que les clients s'authentifient avec leur nom d'utilisateur et leur mot de passe avant de pouvoir envoyer des messages. Le protocole SMTP de Google aussi, mais vous devrez peut-être prendre des mesures supplémentaires pour le faire fonctionner.
Les étapes d’authentification SMTP de Google avec PHPMailer varient selon que la vérification en deux étapes de Google est activée ou non.

Authentification de GMAIL avec la vérification en 2 étapes activée

Si vous avez activé la vérification en deux étapes, vous devez créer un «mot de passe d'application» et l'utiliser pour vous connecter avec PHP, car vous ne pourrez pas utiliser le deuxième facteur d'authentification avec PHPMailer (qui implique l'utilisation d'une application d'authentification ou l'autorisation). l'accès avec votre smartphone).

Un «mot de passe d'application» est une chaîne que vous pouvez utiliser pour vous connecter sans le deuxième facteur d'authentification. Pour en créer un, il suffit tout simplement d’ouvrir ce lien.

  À partir de là, choisissez un nom pour votre application (par exemple, «PHPMailer») et appuyez sur le bouton «Générer».

Après avoir appuyé sur le bouton, vous obtiendrez une chaîne de 16 caractères que vous pourrez utiliser pour vous connecter. Assurez-vous de la copier immédiatement, car vous ne pourrez pas la récupérer plus tard (si vous la perdez, vous devrez créer un nouveau mot de passe de l'application à partir de zéro ):

Conclusion

Maîtriser la gestion des emails en PHP est un gros avantage. Avec ce didacticiel, vous avez appris tout ce dont vous avez besoin pour utiliser pleinement le potentiel de PHPMailer : son installation, ses fonctionnalités, la configuration de connexions SMTPS (y compris Gmail). N'hésitez pas à mettre cette page en signet et à la renvoyer ici pour référence au besoin. Si vous rencontrez de problème lors de la mise en pratique de ce tutoriel, consultez le guide de dépannage de PHPMailer ou laissez-moi simplement un commentaire ci-dessous. Vous êtes également invités à rejoindre mon groupe Whatsapp où ma communauté et moi serons très heureux de vous aider ! Maintenant, je suis curieux de savoir comment VOUS utilisez le emails dans vos sites Web. J'ai hâte d'avoir de vos nouvelles !   Si ce guide vous a été utile, consacrez une seconde de votre temps à le partager… merci !

Télecharger le script complet pour envoyer des mails avec PHPMailer



Précedemment sur Congogeek


Laisser votre commetaire





4 Commentaires

Darty | 28/08/2019

Okok



Jonas | 16/08/2019

merci beaucoup Darty pour ce guide si riche.

Depuis longtemps j'ai des problème à envoyer des e-mails sur mon site vu que ce n'est qu'un sous-système SMTP disponible. j'essayais d'utiliser la fonction mail() de PHP mais rien ne se passe. mais avec ce tuto j'espère déjà utilisé on adresse gmail pour l'envoi des mails. merci beaucoup




Darty | 16/08/2019

Je t'en prie. je suis certain que ce tuto va t'être utile.

En cas de besoin n'hésite pas de me contacter pour un coup de main.


Aggestor | 15/08/2019

Voila ce que j attendais



Darty | 15/08/2019

Voilà ! Passe directement à l'action et commence à envoyer des email avec ton site.


Samet | 15/08/2019

Très bon tuto merci Darty !



Darty | 15/08/2019

Je t'en prie.