Sur windows la fonction mail() de php est configurée pour fonctionner via SMTP que l’on peut configurer dans le php.ini
Sur les systèmes Linux, ça n’est pas le cas. Php est configuré pour transmettre les mails via un vrai service de transport de mail du style sendmail ou postfix.
Le problème de ces programmes (demon), c’est qu’ils ne sont pas évidents à installer et configurer correctement pour tout les développeurs qui ne sont pas admin système.
Heureusement ESMTP est là pour nous sauver, nous autres simples développeurs.
Esmtp is a send-only sendmail emulator
Pour les anglophobes, ESMTP est un émulateur de sendmail pour l’envoi seulement des mails.
C’est à dire que c’est un programme qui comprend les commandes sendmail, les traduit en requêtes smtp et les transmet à un serveur smtp.
Installation et configuration de ESMTP
sudo apt-get install esmtp
Ou alors, vous le trouverez dans Synaptic.
Aprés quoi un petit coup de
sudo nano /etc/esmtprc
pour aller modifier la configuration et mettre le stmp que l’on veut utiliser (celui de votre provider).
# Config file for ESMTP sendmail
# The SMTP host and service (port)
hostname=smtp.orange.fr:25
Dernier petit point à voir, faire un lien symbolique de sendmail vers esmtp pour faire croire à php que sendmail est installé.
sudo ln -s /usr/bin/esmtp /usr/bin/sendmail
Et voila ! Vous pouvez coder des envois de mails, dans des conditions de production, avec la méthode sendmail sans avoir eu à passer des heures à configurer votre serveur de mail 😉
Source : http://esmtp.sourceforge.net/