Envoyer des mails avec php

Quoi de plus simple que d'envoyer des mails avec php avec la fonction mail ! Les choses se compliquent légèrement si on n'a pas de serveur de mail ! Et c'est peu de le dire. Evidemment on peut se lancer dans l'installation d'un serveur de mail (sendmail ou postfix par exemple) mais ce n'est pas à la portée de monsieur tout le monde si on ne veut pas servir de relais de spam! Une solution simple: nullmailer

Hier en voulant tester le module d'envoi de mail de mon application utilisant symfony, je me suis apperçu que je ne pouvais pas envoyer de mail pour tester ! Ne voulant pas installer un serveur de mail j'ai installé nullmailer:

Après un apt-get install nullmailer, les trois-quarts du boulot étaient faits. L'installeur pose deux questions:

  1. Nom de courrier de votre système ?
  2. Machines relais ?

A la première question, j'ai répondu free.fr et à la deuxième j'ai répondu smtp.free.fr smtp.

Le serveur de mail (qui n'en est en fait pas un [1]!) se lance et après ça marche!!!

Il ne reste plus qu'à modifier la configuration de php pour qu'il utilise nullmailer au lieu de chercher en vain sendmail ! J'ai juste modifier le sendmail_path: sendmail_path = /usr/bin/nullmailer-inject -fmoi@free.fr

La modification de la configuration de php ne me plait qu'à moitié et je pense que je vais écrire un wrapper pour ne pas avoir à la modifier.

Notes

[1] Et oui contrairement à ce qu'on pourrait croire nullmailer n'est pas un serveur de mail. Ce n'est qu'un MTA. Il ne fait que transférer les messages à un autre MTA ou à un MDA qui se charge de l'envoyer à destination.

Haut de page