… ou pas.
J'ai actuellement un projet de site web qui a besoin d'envoyer un mail... rien de bien extraordinaire en fait. Mais envoyer un mail depuis PHP sur une station Ubuntu est moins facile qu'il n'y parait.
1ère solution: installer Postfix ou Sendmail, 2 gros bazookas pour une petite mouche.
2ème solution: installer nullmailer ou installer esmtp. Chez moi, nullmailer ne marchant pas pour des raisons obscures et sombres, j'ai installé esmtp qui fonctionne à merveille.
Installation:
sudo apt-get install esmtp
Configuration:
sudo vim /etc/esmtprc
Il suffit d'indiquer un serveur smtp (celui de son FAI, par exemple), éventuellement un login/pass au besoin.
Pour l'utiliser avec gmail, en revanche, c'est un poil plus complexe, mais la documentation d'esmtp est bien faite.
Enfin, pour terminer, il suffit de faire un lien symbolique de /usr/bin/sendmail vers esmtp comme suit pour que tout fonctionne parfaitement:
sudo ln -s /usr/bin/esmtp /usr/bin/sendmail
Chris
27 novembre 2007 à 22h32
La différence avec Postfix ou Sendmail, c’est qu’avec ces deux derniers il me semble, tu n’as pas besoin de smtp de ton fournisseur d’accès.
Pascal
27 novembre 2007 à 23h00
effectivement, postfix et sendmail sont des serveurs mails donc font office de SMTP . mais on peut aussi les configurer pour relayer les messages à une autre serveur smtp (celui de son FAI par exemple).
le problème c’est que certain FAI bloquent en sortie les serveurs smtp, il faut passer obligatoirement par leur serveur (Free propose une option sur son interface de gestion, je ne sais pas ce qu’il en est chez les autres)
Jean-Christophe Caron
28 novembre 2007 à 06h15
Bonjour,
En quoi est-ce plus simple/intéressant d’utiliser esmtp plutôt que d’utiliser directment le serveur de l’hébergeur ou même du FAI ? Surtout dans le cas ou les mails sont relayés vers celui-ci.
Cordialement.
Guy KPADJIK
28 novembre 2007 à 10h02
@Chris: tout a fait, mais le but ici est d’avoir un serveur fonctionnel en 5 minutes et de ne pas avoir une usine à gaz du genre de postfix ou sendmail.
@Pascal: les FAI ne bloque pas les serveurs smtp sans quoi plus personne ne pourrait envoyer de mail. Il ne bloque, éventuellement, que le port 25. Chez free, par exemple, le port 25 est bloqué par défaut, il faut aller dans l’interface d’admin pour le débloquer ou bien utiliser une connexion ssl et le port 587
@Jean-Christophe Caron: partant du principe qu’on n’installe pas ubuntu sur un serveur dédié (qui est plutôt une distribution desktop) et que de toute façon, sur un hébergement (dédié ou non) il y a bien souvent déjà un serveur mail d’installer et de configurer, je destinais ce billet au pc desktop.
En l’occurence, je développe actuellement quelque chose sur mon ordinateur personnel, à la maison. Afin de tester l’envoi de mail de mon application, j’ai du installer un serveur de mail.
J’ai installé sendmail qui ne voulait rien savoir puisque mon domaine n’était pas full qualified, j’ai zappé postfix et ai installé nullmailer (lien dans le billet) qui n’a pas voulu fonctionner pour des raisons obscures. En revanche, esmtp fonctionne à merveille chez moi, y compris avec gmail.
Jean-Christophe Caron
28 novembre 2007 à 10h25
Merci pour vos précisions Guy. :)
C’est vrai que pour tester une application c’est quand même plus pratique que de configurer la grosse usine.
Je retiens, ça pourrait m’être utile.
Moe
30 novembre 2007 à 22h45
Le login/pass est obligatoire ? Il n’y a que ça à configurer ? Le système (et PHP) reconnaît tout seul qu’il doit utiliser esmtp pour envoyer des mails ? J’ai installé esmtp, configuré /etc/esmtprc (smtp.orange.fr) et quand j’essaye d’envoyer un mail avec PHP le mail n’arrive pas.
Guy KPADJIK
30 novembre 2007 à 23h38
Le login/pass de quoi? Le login/pass du FAI dépend du FAI… et plus généralement du serveur smtp. Le login/pass de gmail est obligatoire ainsi que le reste de la manipulation décrite dans la documentation d’esmtp.
Il n’y a que ça à configurer… en revanche, il manquait effectivement quelque chose à mon petit billet… que je me suis empressé de rajouter tout en bas: il faut faire un lien symbolique pour que tout les logiciels qui veulent utiliser sendmail… croient l’utiliser :)
Moe
1 décembre 2007 à 01h49
La configuration est toute simple et pourtant je n’arrive pas à le faire marcher. Gni. :|
Guy KPADJIK
1 décembre 2007 à 10h26
tu utilises quel serveur smtp ?
Moe
2 décembre 2007 à 18h10
J’utilise le serveur smtp.orange.fr, j’ai essayé avec mon nom d’utilisateur tout seul, en ajoutant @wanadoo.fr et rien ne marche. J’ai vu les mails envoyés à la fin de /var/mail/www-data, par contre je ne sais pas comment ils sont arrivés là. J’ai aussi essayé d’envoyer un mail avec le logiciel mail mais ça ne fait rien, il n’y a ni message d’erreur ni mail envoyé.
Charles Nepote
25 décembre 2007 à 01h49
Je bute sur l’utilisation de gmail comme serveur SMTP.
En suivant la procédure de la doc d’esmtp, je parviens à envoyer des messages via gmail à partir de la ligne de commande d’un compte utilisateur donné :/usr/bin/esmtp -t -i < mail.test
Mais pour le compte www-data (compte utilisé par Apache/PHP pour lancer esmtp), rien à faire…
Je n’arrive pas à savoir où placer les certificats Verisign pour le compte www-data. /var/www ne donne rien…
Des idées ?
Charles Nepote
26 décembre 2007 à 11h27
Las, je suis passé à msmtp qui fait la même chose et reste tout à fait simple. msmtp intègre un poil d’options supplémentaires permettant de configurer des comptes SMTP en TLS pour tous les utilisateurs (alors qu’avec esmtp on est obligé de configurer ces comptes utilisateur par utilisateur). http://msmtp.sourceforge.net/
Disponible sur Ubuntu et Debian, naturellement : apt-get install msmtp
Nicolas
5 mars 2008 à 18h38
Mmmm. Ca semble tres interessant. Exactement ce qu’il me faut. Malheuresement, pour moi non plus cela ne marche pas. Pour le smtp de ma boite n’a pas besoin d’authentification. J’ai bien rajouté le lien symbolique. :(
Nicolas
5 mars 2008 à 18h46
En fait je viens de faire un phpinfo et je viens de m’appercevoir que sendmail n’est pas dans /usr/bin/sendmail mais dans /usr/sbin/sendmail
(du moins sur mon ubuntu et mon serveur php5)
Merci! ca marche tres bien maintenant
Blabla autour d’Ubuntu et Cie » Blog Archive » Alternative à sendmail pour un serveur php
13 mars 2008 à 15h51
[...] alternative et simple existe. Il s’agit d’esmtp. Je l’ai découverte sur le blog totalement geek. Donc tout le mérite lui revient [...]
Akira
18 juillet 2008 à 15h17
super le tuto
je viens de passer 2 jours pour installer un serveur mail sans résultat
grace a vous j’ai pu en venir a bout
merci a tous
Cordialement akira
RageX
7 août 2008 à 02h40
Il y a aussi Exim4 comme alternative. Mon Isp blockais les ports SMTP et autres dûe a un grand nombre d’usagé infecté sur ces ports.
http://ragex.ca/2008/configuration-rapide-exim4-avec-google-mail-reposte/
Donc voici un guide que j’avais fais en lisant de la documentation.
D’un cousin Québécois.
Patrick
3 février 2009 à 18h40
J’ai tout fait et j’ai un pb : quand j’active la page php qui doit envoyer un mail de test, elle reste bloquée …
Si je met en commentaire toutes les lignes de mon fichier /etc/esmtprc par contre la page ne reste pas bloquée, la fonction mail() renvoie true et bien sur rien n’est parti réellement.
Je déduis de ce changement de comportement que le lien php=> esmtp se déroule bien mais que ca n’atteient pas gmail. J’ai un iptables mais le port 25 est ouvert dans les 2 sens. Je sais plus quoi faire …
Voila ce que contient mon fichier de config de esmtp :
identity abcd@gmail.com
hostname smtp.gmail.com:857
username « abcd@gmail.com »
password « xxxxxxxxx »
starttls required
mda « /usr/bin/procmail -d %T »
Ubuntu Server : sites web | Le weblog de Vanaryon
17 mars 2010 à 14h39
[...] qui bloque le port 25 (comme Orange) permettant à la fonction mail de PHP de fonctionner, lisez ce tutoriel. Sinon, installez juste sendmail et le mail() de PHP marchera [...]
Anthony
2 avril 2010 à 10h30
Merci pour le tuto ;) simple et efficace… que demander de plus?
Tony