L’auteur a volontairement contribué à ce tutoriel dans le cadre du programme Pepipost Write to Contribute.
Introduction
Les notifications deviennent de plus en plus importantes ces jours-ci pour rester à jour parmi les diverses activités en ligne. De plus, ces notifications peuvent être des e-mails, des SMS ou des push. Ce tutoriel va vous montrer le moyen le plus simple d’envoyer des notifications, sur l’un des canaux les plus populaires qu’est le courrier électronique. Vous allez apprendre le processus d’envoi d’e-mails à partir du terminal ou d’un script shell à partir d’un système d’exploitation Linux, en utilisant certains des outils CLI populaires.
Ce tutoriel va vous aider à envoyer des e-mails critiques au niveau du serveur tels que des rapports Cron, des journaux de script, des enregistrements de clients, des reçus, des relevés bancaires par e-mail. Il existe de nombreuses façons d’envoyer des e-mails à partir du serveur, mais explorons l’outil facile à installer et à coder.
Avec des bibliothèques simples et de petites configurations, vous pouvez avoir un outil CLI dans votre système d’exploitation Linux que vous pouvez utiliser pour envoyer des mails depuis le terminal.
Prérequis
- Système d’exploitation Linux
- Configurations SMTP (détails du serveur SMTP et informations d’authentification)
- Votre éditeur préféré (Facultatif)
- Configurez Gmail SMTP/ready avec tout autre détail de serveur SMTP personnalisé. Dans ce tutoriel, vous allez utiliser Gmail SMTP pour envoyer des e-mails, alors assurez-vous que;
undefinedundefined
Les configurations de serveur SMTP Google ressembleraient à ceci:
- Serveur SMTP / Nom d’hôte : smtp.gmail.com
- Nom d’utilisateur SMTP:
- Mot de passe SMTP:
- Port SMTP: 587
- TLS /SSL: Requis
Il est temps d’ouvrir le terminal
Il existe différents outils et bibliothèques que vous pouvez installer pour envoyer des e-mails depuis le terminal. Peu de bibliothèques populaires sont:
- sSMTP
- Mailx
Dans ce tutoriel, vous allez apprendre les étapes d’installation et d’utilisation de sSMTP pour envoyer des mails à partir de votre ligne de commande Linux. Cliquez ici, au cas où vous souhaiteriez apprendre à installer et à utiliser Mailx pour envoyer des mails depuis votre ligne de commande Linux.
Comment installer sSMTP pour envoyer des mails depuis votre ligne de commande Linux (CLI)
Étape 1
Utilisez la commande ci-dessous pour installer ssmtp:
sudo apt-get install ssmtp
Facultatif :
Les utilisateurs de CentOS peuvent utiliser la commande ci-dessous pour installer ssmtp:
sudo yum install ssmtp
Dans CentOS, vous pouvez voir une erreur lors de l’installation car « le paquet ssmtp n’est pas disponible », dans un tel cas, la commande ci-dessous, va être utile pour résoudre le problème:
sudo yum --enablerepo=extras install epel-release
Étape 2
Une fois ssmtp installé avec succès, vous devez effectuer les configurations globales ci-dessous requises pour l’envoi de courrier.
Ouvrez le fichier suivant dans votre éditeur préféré:
sudo vim /etc/ssmtp/ssmtp.conf
Modifiez le fichier ci-dessus avec les détails ci-dessous:
mailhub=smtp.gmail.com:587useSTARTTLS=YESAuthUser=username-hereAuthPass=password-hereTLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt
La configuration ci-dessus va être utilisée pour envoyer des e-mails à l’aide de votre SMTP Gmail. Si vous souhaitez utiliser un autre SMTP tiers, mentionnez le nom d’hôte du même. par exemple, si vous souhaitez utiliser Pepipost SMTP, alors au lieu de smtp.gmail.com , vous devez mentionner smtp.pepipost.com dans le paramètre mailhub. mailhub est utilisé pour l’adresse du serveur SMTP qui se compose de deux parties host: port
Maintenant, vous êtes prêt à envoyer des mails à partir de la ligne de commande (CLI).
Étape 3
Il existe plusieurs façons d’utiliser la commande ssmtp pour envoyer des e-mails.
Cas 1: Envoyer des e-mails Directement Depuis la Ligne de commande
Pour cela, copiez-collez la commande ci-dessous, et vous êtes prêt à envoyer des e-mails depuis votre ligne de commande:
echo "Test message from Linux server using ssmtp" | sudo ssmtp -vvv
– vvv est la verbosité pour voir les journaux lors de l’envoi du courrier
Cas 2: Envoyer du courrier à partir d’un script Shell
Vous pouvez également utiliser le même ssmtp pour envoyer du courrier à partir d’un script shell. Pour cela, ouvrez votre éditeur préféré et créez un fichier de script shell avec le nom saymail.copiez-collez le code ci-dessous:
#!/bin/sh SUBJECT="Test Subject"TO=""MESSAGE="Hey There! This is a test mail"echo $MESSAGE | sudo ssmtp -vvv $TO
Assurez-vous d’avoir défini le droit d’accès à votre fichier de script. Sinon, voici la commande pour définir l’autorisation:
$ sudo chmod 755 mail.sh
Maintenant, le code est prêt à être exécuté. Exécutez simplement le script shell en utilisant la commande ci-dessous:
$ sudo ./mail.sh
J’espère maintenant que vous pouvez également envoyer des mails en utilisant le script shell.
Voici quelques erreurs / exceptions que vous pouvez rencontrer lors de l’envoi du courrier à l’aide de ssmtp:
Erreur 1
Au cas où, lors de l’envoi de l’e-mail, l’erreur ci-dessous pourrait être obtenue en sortie:
ssmtp: L’autorisation a échoué (535 5.7.8 https://support.google.com/mail/?p=BadCredentials u65smyez14952a76922r5pfui.104 – gsmtp)
220 smtp.gmail.com ESMTP u65sm14952769pfu.104 - gsmtp EHLO kali 250 SMTPUTF8 STARTTLS 220 2.0.0 Ready to start TLS EHLO kali 250 SMTPUTF8 AUTH LOGIN 334 VXNlcm5edhbAWU6 dmlzaGFsY2hhasd2dWhhbjIyMTJAZ21haWwuY29t 334 EUEeGFzc3dvfcaqQ6 535 5.7.8 https://support.google.com/mail/?p=BadCredentials u65smyez14952a76922r5pfui.104 - gsmtpssmtp: Authorization failed (535 5.7.8 https://support.google.com/mail/?p=BadCredentials u65smyez14952a76922r5pfui.104 - gsmtp):~/Documents/Scripts$
Solution: Dans un tel cas, essayez de faire ce qui suit comme solution:
- Activez « Autoriser l’application moins sécurisée » dans les paramètres de vos comptes Google, comme expliqué dans la section Conditions préalables ci-dessus.
- Les identifiants de connexion fournis peuvent être invalides. Assurez-vous d’avoir les informations d’identification correctes.
Une fois le problème résolu, réexécutez le script shell et la sortie réussie ressemblera à ceci;
$ sudo ./mail.sh
Sortie:
220 smtp.gmail.com ESMTP h8sm1096aae22880pfo.64 - gsmtp EHLO kali 250 SMTPUTF8 STARTTLS 220 2.0.0 Ready to start TLS EHLO kali 250 SMTPUTF8 AUTH LOGIN 334 VXNlcm5edhbAWU6 dmlzaGFsY2hhasd2dWhhbjIyMTJAZ21haWwuY29t 334 UGFzqc3dmvcmQ36 235 2.7.0 Accepted MAIL FROM:<> 250 2.1.0 OK h8smqer10962480pfo.64 - gsmtp RCPT TO:<> 250 2.1.5 OK h8smqer10962480pfo.64 - gsmtp DATA 354 Go ahead h8sm10962880pfo.64 - gsmtp Received: by kali (sSMTP sendmail emulation); Thu, 19 Sep 2019 21:45:14 +0530 From: "root" <> Date: Thu, 19 Sep 2019 21:45:14 +0530 Hey There! This is a test mail . 250 2.0.0 OK 1568909725 h8smqer10962480pfo.64 - gsmtp QUIT 221 2.0.0 closing connection h8smqer10962480pfo.64 - gsmtp