ubuntu

Envoyer des mails en français via la ligne de commande dans Ubuntu 22.04 en 2024

Comment envoyer des mails en français via la ligne de commande dans Ubuntu 22.04 grâce à SSMTP

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.

Envoyer des mails en français via la ligne de commande dans Ubuntu 22.04

É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:

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *