Envoyer des mails en ligne de commande avec ssmtp – Debian 8
Une solution rapide et efficace pour envoyer des mails en ligne de commande ( ssmtp )avec un serveur de type Gmail.
J’utilise ssmtp qui est très léger et rapide à configurer.
sSMTP est un simple agent de transport, il se contente d’envoyer le mail à un relais SMTP, il n’y a pas de daemon ou tout autre chose. Il ne reçoit pas d’email.
Installation et configuration
apt install ssmtp mailutils
Les deux fichiers de configurations sont dans /etc/ssmtp
fichier ssmtp.conf :
# # Config file for sSMTP sendmail # # The person who gets all mail for userids < 1000 # Make this empty to disable rewriting. root=postmaster # The place where the mail goes. The actual machine name is required no # MX records are consulted. Commonly mailhosts are named mail.domain.com mailhub=smtp.gmail.com:587 UseSTARTTLS=YES FromLineOverride=YES AuthUser=CompteGMAIL AuthPass=PasswordGMAIL # Where will the mail seem to come from? #rewriteDomain= # The full hostname hostname=DOMAINE # Are users allowed to set their own From: address? # YES - Allow the user to specify their own From: address # NO - Use the system generated From: address #FromLineOverride=YES
Configuration pour un compte gmail.
Sur un VPS ou dédié vous pouvez utiliser le SMTP de l’hébergeur.
fichier revaliases :
# sSMTP aliases # # Format: local_account:outgoing_address:mailhub # # Example: root:your_login@your.domain:mailhub.your.domain[:port] # where [:port] is an optional port number that defaults to 25. root:MAIL@gmail.com:smtp.gmail.com:587 user1:MAIL@gmail.com:smtp.gmail.com:587
Ce fichier permet d’attribuer une adresse mail à chaque user. Trés important pour root qui peut être refusé si vous utilisez le smtp de votre hébergeur.
Test d’envoi
Pour tester le fonctionnement directement avec bash :
echo "Mail envoye $(date)" | mail -s "Test envoi de mail depuis $HOST" MAILAMOI@gmail.com
En python :
sendmail_location = "/usr/sbin/sendmail" # sendmail location p = os.popen("%s -t" % sendmail_location, "w") p.write("From: %s\n" % "MAIL@gmail.com") p.write("To: %s\n" % "MAILAMOI@gmail.com") p.write("Subject: Test\n") p.write("\n") p.write("Test d envoie") status = p.close()
j’essaie depuis d’envoyer un message gmail, mais à chaque fois l’adresse de l’expéditeur est du genre root@nommachine. Comment faire pour la changer s’il vous plait?
Tu as mis quoi dans ton fichier revaliases ?