Outils du site

Le centre de nulle part est équidistant des bords de partout. [Frédéric Tramier]

04-linux:60-ssmtp

ssmtp

Send mail sans serveur de mail

Références

Mise en service

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

Compléments

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

Fichier attachés

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
Sur le Raspberry, le uuencode n'a pas la même version (4.11.1 au lieu de 4.14 sur Ubuntu). Le fichier attaché se retrouve dans le corps du mail et non attaché.

Logs

Pour vérifier les logs :

cat /var/log/mail.log

Les logs affichent le message :

sSMTP[10580]: /etc/ssmtp/ssmtp.conf not found

Pourtant les mails sont envoyés !!! FIXME

Remerciements

Cygwin

uuencode est dans la package sharutils

SSMTP for GMAIL

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

UFW

Pour GMail il faut ajouter la règle suivante à ufw:

sudo ufw allow out 587/tcp
Dernière modification : 2018/09/22 06:28