Send mail sans serveur de mail
http://linux.die.net/man/8/ssmtp
http://linux.die.net/man/5/ssmtp.conf
https://wiki.archlinux.org/index.php/SSMTP Excellent !!!
sSMTP permet à des applications d'envoyer des courriels, sans installer de mail server, via la commande /usr/sbin/sendmail.
sSMTP est disponible sous Ubuntu, Raspbian, Cygwin et bien d'autres LUnix.
sudo apt-get install ssmtp
Créer les paramètres de configuration (Cf. http://linux.die.net/man/5/ssmtp.conf) :
sudo nano /etc/ssmtp/ssmtp.conf
# # Config file for sSMTP sendmail # # The person who gets all mail for userids < 1000 # Make this empty to disable rewriting. root=xxx@provider.com # 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.provider.com AuthUser=xxx # Your Username AuthPass=xxxxxxx # Your Password # Where will the mail seem to come from? rewriteDomain=provider.com # So the message appears to come from FAI # The full hostname hostname=localhost # 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 # So the message appears to come from FAI
Rendre le fichier ssmtp.conf lisible uniquement par l'administrateur et le groupe “mail” :
sudo chmod 640 /etc/ssmtp/ssmtp.conf
Modifier le propriétaire et le groupe de ssmtp.conf pour éviter l'erreur “/etc/ssmtp/ssmtp.conf not found”.
sudo chown root:mail /etc/ssmtp/ssmtp.conf
Set the group owner of the ssmtp binary to the new ssmtp group:
sudo chown :mail /usr/sbin/ssmtp
Set the SGID bit on the ssmtp binary.
sudo chmod g+s /usr/sbin/ssmtp
Les utilisateur pouvant envoyer des mails doivent appartenir au groupe “ssmtp” (must log out and log back in for changes to be used).
sudo gpasswd -a <mainuser> mail
Configurer les revaliases :
sudo nano /etc/ssmtp/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:xxx@provider.com:smtp.provider.com bob:yyy@provider.com:smtp.provider.com
Pour tester la solution, il peut être nécessaire de se délogger avant de lancer la commande :
echo Contenu du message | mail -s “sujet du courriel” -t user@domain.com
Pour améliorer les informations de l'auteur du mail on peut modifier le fichier /etc/passwd
ainsi :
sudo chfn -f 'mainuser@domain.com' mainuser
Installer uuencode pour envoyer des fichiers attachés :
sudo apt-get install sharutils
Pour envoyer un fichier attaché :
uuencode file.txt filename.txt | mail user@domain.com
Exemple classique d'envoi de fichiers zippés :
tar cf - * | gzip | uuencode scripts.tgz | mail -s "attached file uuencoded" user@domain.com
Pour vérifier les logs :
cat /var/log/mail.log
sSMTP[10580]: /etc/ssmtp/ssmtp.conf not found
Pourtant les mails sont envoyés !!!
Special Thanks to https://wiki.archlinux.org/index.php/SSMTP
uuencode
est dans la package sharutils
contenu du fichier /etc/ssmtp/ssmtp.conf
:
root=$mail # 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 # Debug=Yes FromLineOverride=YES AuthUser=$mail AuthPass=$pass UseSTARTTLS=YES UseTLS=YES
Pour GMail il faut ajouter la règle suivante à ufw:
sudo ufw allow out 587/tcp