Cet article n'est en aucun cas destiné à encourager l'envoi, désiré ou non, massif de mails. Il décrit simplement une démarche permettant l'envoi de mails d'une plate-forme locale, à des fins de test, via des prestataires existants (gmail, hotmail, etc).
msmtp est aussi utilisable sur d'autres systèmes et il fait éventuellement partie des paquets que votre système ou distribution propose. À défaut de l'y trouver, vous devrez le compiler à partir de ses sources.
msmtp est, par exemple, présent sur Debian :
aptitude install msmtp
Notes par rapport au paquet Debian :
Soit vous ne contrôlez pas les certificats via tls_certcheck off, c'est ce qui est utilisé ci-bas (pas à raison d'ailleurs), soit vous indiquez un fichier avec les autorités de certifications connues via la directive tls_trust_file. Les systèmes GNU/Linux possèdent généralement de base un tel fichier (/etc/ssl/certs/ca-certificates.crt sous Debian).
defaults tls on tls_starttls on tls_certcheck off account gmail host smtp.gmail.com auth on user john.doe123@gmail.com password fred123 from john.doe123@gmail.com account default : gmail
defaults tls on tls_starttls on tls_certcheck off account hotmail host smtp.live.com from john.doe123@hotmail.com auth on user john.doe123@hotmail.com password fred123 account default : hotmail
Éditer le fichier php.ini effectif de votre environnement.
Assurez-vous tout d'abord de bien commenter les lignes SMTP et sendmail_from en leur ajoutant un point-virgule devant si ce n'est pas déjà fait, surtout sous Windows.
Ajoutez une ligne sendmail_path permettant de faire appel à msmtp :
sendmail_path = "C:\msmtp\msmtp.exe --file C:\msmtp\msmtp.conf -t"
Redémarrez Apache si PHP fonctionne comme module pour que ce changement soit pris en compte dès à présent.