12.02.2008 Envoyer des emails avec Gmail via PHP et msmtp (Ubuntu)
Vieux. Ce billet a plus d'un an. S'il contient des informations techniques elles sont peut être obsolètes.
Je suis en train de migrer petit à petit MarcArea.com sur un serveur virtualisé chez Gandi. La prestation de Lost Oasis, mon hébergeur actuel, est et a toujours été excellente à mon goût. C'est juste parce que le virtualisé via XEN c'est trop hype.
Ca y est, le site tourne en test, ça a l'air de marcher pas mal. Je réfléchi encore à la façon de gérer mes emails et dès que j'aurai pris une décision, je ferai pointer les DNS de marcarea.com vers mon serveur. J'ai pas envie de gérer un serveur de mail en fait. Ca me fait un peu chier de foutre un Postfix ou un Sendmail et de devoir le gérer après, je connais pas et j'ai pas le temps de me plonger là dedans.
Pourtant j'ai besoin d'envoyer des mails via PHP (avez-vous noté l'excellente transition ?) depuis mon serveur sous Ubuntu. Après quelques recherches j'ai trouvé une solution simple qui convient à mes besoins : utiliser un client SMTP léger et faire envoyer les mails par Gmail. J'ai choisi msmtp suite à plusieurs tentatives infructueuses avec esmtp.
Mémo pour envoyer des emails avec la fonction mail() de PHP via Gmail sous Ubuntu :
Installer msmtp :
apt-get install msmtp
Créer un fichier de conf pour msmtp :
cd /var/www/apache2-default vi .msmtprc
Editer la conf de msmtp :
defaults # log to specified file # (choose something that apache can write to) logfile /tmp/gmail.log # and not with syslog # (apache will probabaly not have the right to write there) syslog off # dsn dsn_notify off dsn_return off # account gmail account gmail host smtp.gmail.com protocol smtp auth on user email@gmail.com password your_password tls on tls_starttls off tls_certcheck off from email@gmail.com maildomain gmail.com # Set a default Account account default : gmail
S'assurer que seul l'utilisateur Apache a les droits sur la conf :
chown www-data:www-data .msmtprc chmod 600 .msmtprc
Modifier sendmail_path dans php.ini en lui indiquant quel fichier de conf utiliser :
sendmail_path = "/usr/bin/msmtp -t -C /var/www/apache2-default/.msmtprc"
Les ressources qui m'ont aidé pour trouver cette solution :
Vous êtes sur le blog personnel de Marc Hertzog. Les opinions exprimées sont uniquement celles de son auteur.
Ça marche, tout simplement, merci !
18.02.08 21:02
Merci, cela fonctionne à merveille ! Simple et efficace
22.02.08 09:02