Services et serveurs

Envoyer des emails facilement sous Linux depuis un script

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


Pour envoyer un message :
Code BASH :
echo "Corps de mail" | mail -s "Sujet" destinataire@linuxtricks.fr


Le mail est envoyé avec comme expéditeur le [email protected]. On peut réécrire l'expéditeur ainsi :
Code BASH :
echo "Corps de mail" | mail -s "Sujet" -a "From: [email protected]" destinataire@linuxtricks.fr


Plutôt que de faire
Code BASH :
echo "Du texte" | mail 


on peut écrire tout au long du script dans un fichier (par exemple /tmp/fichier) puis de faire
Code BASH :
cat /tmp/fichier | mail 


bsd-mailx



Debian :
Code BASH :
apt install mailutils


Pour envoyer un message :
Code BASH :
echo "Corps de mail" | mail -s "Sujet" destinataire@linuxtricks.fr


Le mail est envoyé avec comme expéditeur le [email protected]. On peut réécrire l'expéditeur ainsi :
Code BASH :
echo "Corps de mail" | mail -s "Sujet" -a "From: [email protected]" destinataire@linuxtricks.fr


Plutôt que de faire
Code BASH :
echo "Du texte" | mail 


on peut écrire tout au long du script dans un fichier (par exemple /tmp/fichier) puis de faire
Code BASH :
cat /tmp/fichier | mail 


mailx



CentOS :
Code BASH :
yum install mailx


Pour envoyer un message :
Code BASH :
echo "Corps de mail" | mail -s "Sujet" destinataire@linuxtricks.fr


Le mail est envoyé avec comme expéditeur le [email protected]. On peut réécrire l'expéditeur ainsi :
Code BASH :
echo "Corps de mail" | mail -s "Sujet" -r expediteur@linuxtricks.fr destinataire@linuxtricks.fr

Cette page a été vue 1572 fois