Dernière modification le 20 mai 2023 à 14:41 heures
Comment envoyer des mails en français via la ligne de commande dans Ubuntu 22.04 grâce à SSMTP
Voici la procédure à suivre pour envoyer des mails en français via la ligne de commande dans Ubuntu 22.04 grâce à SSMTP.

Contenu de comment envoyer des mails en français via la ligne de commande
Étape 1: installer le paquet SSMTP
sudo apt install ssmtp -y
détails officiels du paquet ssmtp
Étape 2: configurer SSMTP
La configuration de SSMTP se fait en éditant le fichier /etc/ssmtp/ssmtp.conf.
- Commençons par renommer le fichier de configuration par défaut
sudo mv /etc/ssmtp/ssmtp.conf /etc/ssmtp/ssmtp.conf.bak
- Créer un fichier ssmtp.conf
sudo nano /etc/ssmtp/ssmtp.conf
- et y ajouter les lignes suivantes:
FromLineOverride=YES root=<votre adresse mail> mailhub=smtp.<votre domaine>:587 hostname=<votre hostname> AuthUser=<votre adresse mail> AuthPass=<password de votre utilisateur mail> UseSTARTTLS=YES
Étape 2bis: configurer SSMTP avec gmail
Pour ce qui est de la configuration de SSMTP avec une adresse mail:
- il faut d’abord créer un mot de passe pour application dans votre compte de messagerie gmail
- le mailhub sera smtp.gmail.com:587
- le AuthPass sera le mot de passe créé précédemment
Le fichier /etc/ssmtp/ssmtp.conf sera alors:
FromLineOverride=YES root=<votre adresse gmail.com> mailhub=smtp.gmail.com:587 hostname=<votre hostname> AuthUser=<votre adresse gmail.com> AuthPass=<mot de passe pour application créé> UseSTARTTLS=YES
Nous allons à présent tester l’envoi d’un mail de <votre adresse mail> vers <adresse mail du destinataire>. Utilisez pour cela deux boîtes mail auxquelles vous avez accès.
Étape 3: tester avec SSMTP
- créez un fichier texte file-ssmtp.txt et entrez les infos suivantes
nano file-ssmtp.txt
From: <votre adresse mail> Subject: test avec "from" via ssmtp Email ligne de contenu 1 Email ligne de contenu 1
- exécutez ensuite la commande suivante:
ssmtp -v <adresse mail du destinataire> < file-ssmtp.txt>
- voici le résultat que vous devriez obtenir
[<-] 220 GARM-98R002 Wednesday, December 21, 2022 [->] EHLO <nom de votre domaine> [<-] 250 8BITMIME [->] STARTTLS [<-] 220 2.0.0 Ready to start TLS [->] EHLO <nom de votre domaine> [<-] 250 8BITMIME [->] AUTH LOGIN [<-] 334 VXNlcm5hbWU6 [->] dGVzdC5zc210cEBub2VsbmFjLmNvbQ== [<-] 334 UGFzc3dvcmQ6 [<-] 235 2.7.0 Authentication successful [->] MAIL FROM:<votre adresse mail> [<-] 250 2.1.0 Ok [->] RCPT TO:<adresse du destinataire> [<-] 250 2.1.5 Ok [->] DATA [<-] 354 OK [->] Received: by <nom de votre domaine> (sSMTP sendmail emulation); Wed, 21 Dec 2022 09:02:52 +0000 [->] Date: Wed, 21 Dec 2022 09:02:52 +0000 [->] From: <votre adresse mail> [->] Subject: test avec "from" via ssmtp [->] [->] Email ligne de contenu 1 [->] Email ligne de contenu 1 [->] [->] . [<-] 250 2.0.0 Ok: queued as A04161FED9 [->] QUIT [<-] 221 <nom de votre domaine> Service closing transmission channel
- vérifiez que vous avez bien reçu le mail dans la boîte mail du destinataire
Étape 3bis: tester avec sendmail
- créez un fichier texte file-sendmail.txt et entrez les infos suivantes
nano file-sendmail.txt
From: <votre adresse mail> To: <adresse mail du destinataire> Subject: test avec "from" et "to" via send mail Email ligne de contenu 1 Email ligne de contenu 1
- exécutez ensuite la commande suivante:
cat file-sendmail.txt | sendmail -t -f <votre adresse mail>
- vérifiez que vous avez bien reçu le mail dans la boîte mail du destinataire
Changer le jeu de caractères pour pouvoir envoyer des mails en français via la ligne de commande
Pour envoyer des mails en français via la ligne de commande, il est nécessaire de changer le jeu de caractères pour accéder aux caractères accentués français.
Pour cela nous allons créer un fichier script qui va contenir les informations nécessaires pour pouvoir envoyer des mails en français via la ligne de commande
nano french-file-sendmail.sh
#!/bin/sh # MSG="message avec des caractères accentués" FROM="adresse mail de l'expéditeur" TO="adresse mail du destinataire" ( echo From: $FROM echo To: $TO echo Subject: $MSG echo 'MIME-Version: 1.0' echo 'Content-Type: text/html; charset="ISO 8859-15"' echo 'Content-Disposition: inline' echo "<br />" echo $MSG echo "<br />" echo "<br />" echo "première ligne du message avec des caractères accentués" echo "<br />" echo "ligne de caractères accentués éèàçêûôîëüï" echo "<br />" echo "<br />" echo "et voici le résultat d'une commande en ligne: " echo "<br />" ip a | awk '{printf "%s<br />", $0}' echo "<br />" )| sudo -u nobody /usr/sbin/sendmail -t -f $FROM exit 0
Vérifiez bien que votre copié/collé dans nano transfère bien les caractères accentués. Dans le cas contraire, corrigez manuellement dans nano.
Les points importants sont:
- les trois lignes qui convertissent le mail en text/html avec le jeu de caractères ISO 8859-15
echo 'MIME-Version: 1.0' echo 'Content-Type: text/html; charset="ISO 8859-15"' echo 'Content-Disposition: inline'
- pour passer à la ligne il faut utiliser <br />
echo "<br />
- il faut également ajouter un <br /> après chaque ligne du résultat d’une commande comme ici avec ‘ip a’ en utilisant pour cela la commande ‘awk‘. Il en sera de même si l’on voulait envoyer le contenu d’un fichier texte ubuntu.
ip a | awk '{printf "%s<br />", $0}'
Ne pas oublier de rendre le fichier exécutable
sudo chmod u+x french-file-sendmail.sh
Pour tester, il vous suffit d’exécuter la commande
./french-file-sendmail.sh
et vérifier que vous avez bien reçu le mail dans la boîte mail du destinataire
Vous pouvez à présent envoyer des mails en français via la ligne de commande
[…] Pour envoyer des mails depuis un script, nous allons utiliser SSMTP et SendMail comme décrit dans mon article Envoyer des mails via la ligne de commande dans Ubuntu 22.04 […]
[…] pouvoir utiliser le compte mail dans vos applications, par exemple pour l’envoi de mails en ligne de commande via ssmtp, il faut d’abord créer un mot de passe pour applications dans Gmail […]