Logiciels en ligne de commande

ssmtp msmtp mail s-nail : Envoyer des emails facilement sous Linux en ligne de commande

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

envoi_courriel



Introduction



Sur ce site, j'ai réalisé des tutoriels sur postfix et comment l'installer en tant que relais SMTP.

Cependant, il existe plus simple que de mettre en place postfix pour envoyer des emails, grâce à 2 composants :
- Un Client SMTP
- Une commande qui permet d'expédier des emails

Vous allez voir, c'est facile, cela fonctionne super bien, et j'utilise ça depuis bien longtemps sur les serveurs du travail pour envoyer par mail des retours de scripts de sauvegarde.

Le client SMTP



Il existe plusieurs clients SMTP. Choisissez celui de votre choix : ssmtp, msmtp.

ssmtp



ssmtp est le premier outil que j'ai utilisé pour configurer localement un client SMTP sur la machine.

Il suffit d'installer le paquet ssmtp.

CentOS :
Code BASH :
yum install ssmtp


Gentoo :
Code BASH :
emerge -av mail-mta/ssmtp


Debian :
Code BASH :
apt install ssmtp


Ensuite, on va indiquer à ssmtp les paramètres du SMTP à contacter pour envoyer des emails. Tout se passe dans le fichier /etc/ssmtp/ssmtp.conf :

Code BASH :
vi /etc/ssmtp/ssmtp.conf


Je vous mets mon fichier de configuration avec les options

Code BASH :
#
# /etc/ssmtp.conf -- a config file for sSMTP sendmail.
#
 
# Serveur SMTP à utiliser
mailhub=auth.smtp.1and1.fr:587
 
# Réécrire le domaine de l'expéditeur
rewriteDomain=linuxtricks.fr
 
# Nom de la machine 
hostname=serveur
 
## Mettre YES permet au programme qui envoie un courriel de modifier l'entête du message concernant l'émetteur.
FromLineOverride=YES
 
## Authentification sur le relais smtp
UseSTARTTLS=yes
UseTLS=yes
#IMPORTANT: The following line is mandatory for TLS authentication
TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt
 
## Nom d'utilisateur SMTP
AuthUser=XXXXXXXXXXX@linuxtricks.fr
 
## Mot de passe associe au compte
AuthPass=XXXXXXXXXXX




La commande mail pour envoyer des emails



Il faut installer la commande mail pour envoyer des emails depuis vos scripts.
Certaines commandes n'ont pas la même syntaxe, je diffère donc les cas ici.

mailutils



Gentoo :
Code BASH :
emerge -av net-mail/mailutils


Debian :
Code BASH :
apt install mailutils/code]
 
Pour envoyer un message :
 
[code=bash]echo "Corps de mail" | mail -s "Sujet" destinataire@linuxtricks.fr[/code]
 
Le mail est envoyé avec comme expéditeur le [b]unixusername@hostname[/b]. On peut réécrire l'expéditeur ainsi :
 
[code=bash]echo "Corps de mail" | mail -s "Sujet" -a "From: [email protected]" [email protected][/code]
 
Plutôt que de faire 
 
[code=bash]echo "Du texte" | mail [/code]
 
on peut écrire tout au long du script dans un fichier (par exemple /tmp/fichier) puis de faire
 
[code=bash]cat /tmp/fichier | mail [/code]
 
 
--- bsd-mailx ---
 
Debian : 
[code=bash]apt install mailutils/code]
 
Pour envoyer un message :
 
[code=bash]echo "Corps de mail" | mail -s "Sujet" [email protected][/code]
 
Le mail est envoyé avec comme expéditeur le [b]unixusername@hostname[/b]. On peut réécrire l'expéditeur ainsi :
 
[code=bash]echo "Corps de mail" | mail -s "Sujet" -a "From: [email protected]" destinataire@linuxtricks.fr[/code]
 
Plutôt que de faire 
 
[code=bash]echo "Du texte" | mail [/code]
 
on peut écrire tout au long du script dans un fichier (par exemple /tmp/fichier) puis de faire
 
[code=bash]cat /tmp/fichier | mail [/code]
 
--- mailx ---
 
CentOS : 
[code=bash]yum install mailx[/code]
 
Pour envoyer un message :
 
[code=bash]echo "Corps de mail" | mail -s "Sujet" destinataire@linuxtricks.fr[/code]
 
Le mail est envoyé avec comme expéditeur le [b]unixusername@hostname[/b]. On peut réécrire l'expéditeur ainsi :
 
[code=bash]echo "Corps de mail" | mail -s "Sujet" -r [email protected] [email protected]