picture picture
septembre 19, 2017 PHP 11 Commentaires

Envoyer des e-mails depuis votre ordinateur avec WampServer

Tout développeur qui se respecte a eu un jour (au moins !) besoin d’envoyer des e-mail depuis un site en développement local. Ne serait-ce que pour  tester la mise en forme du sacro-saint formulaire de contact…

Ceux qui utilisent la plateforme de développement web sous Windows WampServer ont pu constater qu’elle n’intègre plus par défaut de serveur d’envoi des e-mails. L’envoi d’un e-mail génère au mieux : rien du tout; au pire : un message d’erreur (Failed to connect to mailserver at « localhost » port 25, verify your « SMTP » and « smtp_port » setting in php.ini…  etc.)

Il existe une solution simple et efficace : le serveur SMTP ( (Simple Mail Transfer Protocol)  Fake Sendmail for Windows !

1ère étape :

Télécharger les fichiers sur le site de l’éditeur, ou ici. Notez qu’il n’y a plus de mise à jour, mais l’utilisation étant locale les problèmes de sécurité sont donc secondaires.

2ème étape :

Dézipper l’archive et installer les fichiers extraits sur la racine de votre serveur, c’est à dire  dans le dossier […]/wamp/sendmail (que vous aurez préalablement créé)

3ème étape :

Sendmail a besoin d’un serveur SMTP pour fonctionner, il va donc vous falloir éditer le fichier  [...]/wamp/sendmail/sendmail.ini avec votre éditeur de texte préféré, pour le configurer avec le SMTP de votre boite e-mail.
Dans l’exemple suivant le SMTP est celui celui d’une boite Gmail, mais vous pouvez utiliser ceux de n’importe quelle autre boîte (smtp.free.fr / smtp.orange.fr / etc.)
Les champs à renseigner sont les suivants :

;smtp_server=mail.mydomain.com
smtp_server=smtp.gmail.com

; smtp port (normalement 25, mais Gmail requiert le port 465)
smtp_port=465

;default_domain=mydomain.com
default_domain=smtp.gmail.com

; if your smtp server requires authentication, modify the following two lines
auth_username=<votre adresse>@gmail.com

auth_password=<votre mot de passe>

force_sender=<votre adresse>@gmail.com

Laissez tous les autres champs tels quels. Enregistrez.

4ème étape :

Il faut maintenant indiquer à votre moteur PHP où se trouve le serveur d’envoi de la fonction mail()
Pour cela il faudra éditer le fichier php.ini : clic gauche sur l’icône Wamp dans votre barre  notification (à côté de l’horloge en bas à droite) > PHP > php.ini

Recherchez la ligne sendmail_path et indiquez le chemin absolu du fichier sendmail.exe sur votre disque dur. Par exemple :

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "C:\wamp\sendmail\sendmail.exe -t -i"
									

Redémarrez les services de WampServer. Testez… C’est fini :D

Test d’envoi

Si vous avez des difficultés à recevoir vos e-mails, vous pouvez tester si la fonction mail() de PHP ou le serveur SMTP de votre ordinateur sont bien paramétrés avec le petit bout de code suivant à exécuter :

<?php
$dest = "<votre adresse e-mail perso>";
$sujet = "Ceci est un test";
$message = "Ceci est un test de la fonction mail()";
$header = "From: $dest";

/* test 1 */
$envoi = mail($dest, $sujet, $message, $header);

if ($envoi == true)
  echo "<p>Test 1 : la fonction mail() fonctionne. Un e-mail a ete envoye a l'adresse $dest.
  <br />S'il ne vous parvient pas, il y a probablement un blocage au niveau du serveur SMTP de l'hebergeur</p>";
else
  echo "<p>Test 1 : l'envoi par la fonction PHP mail() ne fonctionne pas ou est desactivee</p>";

/* test 2 */
echo "<p>Test 2 : Si bool(false) le mail ne part pas
<br />Si bool(true) l'e mail a bien ete envoye (donc il est bloque apres)</p>";
var_dump(mail($dest, $sujet, $message, $header));
?>
									

Et en dernier lieu… n’oubliez pas de vérifier dans la boite de spam de votre destinataire (on ne sait jamais…) ;)

11 Responses to “Envoyer des e-mails depuis votre ordinateur avec WampServer”

11 Commentaires

  1. Jean-Philippe dit :

    Merci beaucoup pour ce tuto. Ça fonctionne très bien… quand on ne fait pas une erreur de frappe !

    Encore merci ; JP

  2. Jean-Philippe dit :

    Bonsoir. L’envoi de mail semble bon, mais je ne reçois rien sur mon adresse free. La validation en deux étapes est également désactivée sur Google. Comment faire.

    En tout ca

  3. elona enjy dit :

    Oui Woodchip… Bien vu… Totalement ça… ca m’a bien paru bizarre au début mais j’ai quand même recopié bêtement… lol…

    :-)

  4. webtolosa dit :

    Woodchip > Bien vu ! Merci de ta remarque : un petit bug de mon éditeur de code. C’est corrigé.

  5. elona enjy dit :

    J’ai fini par résoudre mon pb. En fait dans le patch dans php.ini sous Wamp, je n’avais pas mis les séparateurs. Du coup j’avais un message d’anomalie dans la log Apache que je n’avais pas vu parce que je debute et que je ne sais pas encore où regarder…. Depuis, j’ai pu m’écrire et je suis fière de moi….. car en plus j’ai appris à regarder dans les fichiers log… Merci pour votre aide
    Je ne doute pas avoir très prochainement besoin à nouveau d’aide…
    Cordialement

  6. webtolosa dit :

    elona enjy > je viens de rajouter sur l’article un petit test qui devrait te permettre de vérifier d’où vient ton problème (cf. « Test d’envoi » ci-dessus)

  7. Woodchip dit :

    « C:wampsendmailsendmail.exe -t -i »

    Est-ce que c’est normal qu’il manque des slashes ou des backslashes dans la structure du répertoire ? la syntaxe du chemin est-elle correcte ?

  8. elona enjy dit :

    Bonjour

    L’envoi du mail est ok mais je ne reçois rien et je ne vois rien sur la boîte gmail utilisé. J’ai strictement suivi vos instructions. J’ai désactivé la validation en deux étapes sur gmail.

    Cordialement

  9. webtolosa dit :

    @ludw
    Pas forcément :
    Ce paramètre n’est pas disponible pour les comptes sur lesquels la validation en deux étapes est activée. Ces comptes requièrent un mot de passe spécifique à l’application pour l’accès aux applications moins sûres.

  10. ludw dit :

    Vous devrez également paramétrer votre compte google pour autoriser les accès moins sécurisé des applications : https://myaccount.google.com/security

  11. No1 dit :

    Testé avec Port 25 sans soucis.

Commentaire

Name

Mail (ne sera pas publié)

Website

Laisser ces deux champs tels quels :
:D :-) :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: