15/11/2024

Apache

WAMP : Envoyer des mails via PHP avec mail()

I. Présentation

Une question qui revient souvent lorsque l'on monte un serveur web, c'est "Comment je vais faire pour envoyer des e-mails ?". Dans le cas, de WAMP (équivalent de LAMP sous Linux), c'est à dire Windows Apache MySQL PHP, on peut envisager d'envoyer des mails sans installer le moindre module supplémentaire.

En fait, on va simplement éditer le fichier de configuration PHP et indiquer les paramètres correspondant au serveur SMTP que l'on souhaite utiliser. Pour rappel, un serveur SMTP permet d'envoyer des e-mails. Ensuite, il suffira d'utiliser la fonction PHP nommée mail() pour envoyer des messages électroniques depuis une page web.

Note : Mise à part la fonction mail(), on peut également utiliser dans le cas de WordPress la fonction wp_mail().

Prêt ?! Alors on commence...

II. Configuration du serveur web

Il faut commencer par éditer le fichier de configuration "php.ini" d'Apache, qui se trouve au chemin suivant (la version d'Apache peut changer...) :

C:\wamp\bin\apache\apache2.4.9\bin\php.ini

Dans ce fichier, vous trouverez une zone nommée [mail function], c'est là qu'il va falloir modifier les paramètres après la mention "For Win32 only".

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = smtp.it-connect.fr
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = [email protected]

L'exemple ci-dessus permet de s'appuyer sur le serveur SMTP "smtp.it-connect.fr" sur le port "25". L'adresse d'expéditeur utilisée sera "[email protected]" (sendmail_from).

Note : Vous remarquerez que je n'ai pas précisé d'identifiant et de mot de passe. En effet, dans la prise en charge par défaut de l'envoi de mail, il n'est pas possible de spécifier d'authentification. Si vous souhaitez utiliser l'authentification, il faut passer par une librairie externe comme "Sendmail for Windows".

Enregistrez le fichier de configuration php.ini. Si WAMP est démarré au moment de la modification, il est nécessaire de redémarrer les services. Pour cela, effectuez un clic gauche sur l'icône de WAMP et cliquez sur "Restart All Services".

wampphp1

III. La fonction mail() de PHP

Intéressons-nous à la fonction mail() intégrée à PHP. Cette fonction très simple fonctionne comme ceci :

mail( "[email protected]" , "Sujet" , "Contenu du message" );

Avec trois paramètres, c'est à dire respectivement : l'adresse e-mail de l'expéditeur, le sujet et le message, on peut envoyer un e-mail !

Note : Si vous souhaitez intégrer des paramètres spécifiques dans le header du mail, par exemple une zone "Reply-To" (Répondre à), consultez la page PHP dédié à la fonction mail au niveau de l'Exemple #2.

Il ne reste plus qu'à créer un formulaire sur votre page, par exemple un formulaire de contact, pour profiter pleinement de l'envoi de mails via WAMP et PHP !

Note : Protégez les formulaires et services qui s'appuieront sur la fonction mail de votre machine, de votre serveur, cela évitera de subir les actions des spammeurs.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

5 commentaires sur “WAMP : Envoyer des mails via PHP avec mail()

  • Hello,
    Je n’arrive pas à faire fonctionner l’envoie de mail avec wampserver

    Répondre
    • Je n’y arrive pas non plus … Avez vous reussi à contourner la difficulté depuis ?

      Répondre
  • oui je rencontre des difficultés peut-être a cause des 30 fichiers php.ini qui sont dans mon pc

    Répondre
  • bonjour, j’explique mon principal problème , avec mail() : j’ai besoin de m’authentifier avec un mot de pass pour envoyer. Je n’ai pour l’instant rien trouvé pour pouvoir m’authentifier. ( je viens de passer la journée a étudier nodejs qui propose un envoi de mail avec mot de pass. ).
    Inconvénient : il faut trouver une solution pour taper un mot de pass.
    Avantage: en étant authentifié on peut voir son mail affiché hors du dossier spam.

    Répondre
    • J’ai essayé en faisant bien attention avec Wampserver, dossier R:\wamp64\bin\apache\apache2.4.58\bin\, php.ini sur lequel j’ai modifié les paramètres.

      Comme je suis sur hotmail pour les essais, j’ai passé SMTP = smtp.hotmail.com, puis SMTP = smtp.live.com, et SMTP = smtp.outlook.live.com.

      J’ai redémarré à chaque fois les services.

      J’ai fait des tentatives avec d’autres fichiers php.ini.

      Et le même message d’erreur apparaît.

      Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.