Pour les administrateurs système ou ceux qui travaillent sur des tâches d’automatisation, savoir envoyer des e-mails depuis le terminal Linux est essentiel. Cela offre un contrôle total sur les fonctions de messagerie et évite d’avoir recours à des programmes complexes. C’est particulièrement utile lorsque la rapidité et la simplicité sont prioritaires.
Des outils courants tels que sendmail et mailx sont fréquemment utilisés pour envoyer des messages, vérifier les paramètres SMTP, automatiser des alertes ou s’intégrer dans des scripts. Ils sont simples mais efficaces — parfaits pour informer une équipe des mises à jour du serveur, automatiser des rapports ou tester des configurations e-mail.
Ce guide s’adresse aux utilisateurs souhaitant gérer leurs e-mails directement depuis le terminal. Il couvre l’installation des outils essentiels ainsi que des tâches plus avancées, comme l’envoi de pièces jointes et la configuration des utilitaires de messagerie.
Les deux outils les plus utilisés — sendmail et mailx — sont des solutions fiables pour l’envoi d’e-mails sous Linux et présentent plusieurs avantages :
Les logiciels de messagerie traditionnels peuvent être lents et gourmands en ressources. Ces outils permettent un envoi rapide et léger directement depuis la ligne de commande.
Ils s’intègrent parfaitement avec les scripts shell, les tâches cron et les outils de supervision. Vous pouvez automatiser des notifications ou alertes répétitives.
Ils simplifient la détection des erreurs et la consultation des journaux de messagerie, ce qui facilite le diagnostic des configurations SMTP.
Que ce soit pour envoyer une alerte ou générer un rapport automatique, sendmail et mailx offrent une grande polyvalence.
Avant d’utiliser ces outils de messagerie Linux, assurez-vous de disposer :
D’un accès au terminal : dans certains cas, des droits root sont nécessaires.
D’un serveur SMTP : indispensable pour tester l’envoi d'e-mails.
Des utilitaires installés : vérifiez que sendmail et mailx sont présents et fonctionnels.
Les serveurs SMTP sont indispensables pour envoyer des messages. Ils se répartissent en deux catégories :
Serveurs SMTP externes
Serveurs SMTP locaux
Ils sont hébergés par un fournisseur tiers. Leur rôle est d’envoyer des e-mails à des destinataires extérieurs à votre réseau. Ils garantissent :
une livraison mondiale,
l’authentification,
la cryptographie,
la prévention du spam.
Adresse : smtp.gmail.com
Port : 587 (TLS) ou 465 (SSL)
Adresse : smtp.office365.com
Port : 587
Ils nécessitent une authentification (login, mot de passe ou mots de passe d’application) et une connexion sécurisée (TLS/SSL).
Note : Nous avons déjà fourni un guide pour configurer un serveur SMTP externe. La commande d'envoi via Postfix reste identique : il suffit d’adapter les identifiants SMTP et de remplacer l’adresse e-mail par celle du fournisseur choisi.
Ils fonctionnent uniquement dans un réseau interne. Idéals pour :
envoyer des e-mails entre utilisateurs locaux (tom@office.local → jerry@office.local),
les tests et le développement,
la communication interne,
les environnements sans connexion Internet.
sudo apt install postfix
sudo nano /etc/postfix/main.cf
Paramètres à vérifier :
myhostname = mail.office.local
mydomain = office.local
myorigin = $mydomain
inet_interfaces = loopback-only
local_recipient_maps = proxy:unix:passwd.byname
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
Redémarrer Postfix :
sudo systemctl restart postfix
sudo adduser linux
sudo adduser hostman
Ce qui génère des adresses comme linux@office.local.
sendmail est un agent de transfert de courrier (MTA) très répandu sous Linux. Il fonctionne avec des serveurs SMTP et permet d’envoyer des e-mails depuis des scripts ou des systèmes locaux.
sudo apt install sendmail
sudo yum install sendmail
sudo systemctl start sendmail
sudo systemctl enable sendmail
echo "Testing sendmail setup" | sendmail -v your-email@example.com
Vérifier les e-mails reçus :
mail
Installer mailutils si nécessaire :
sudo apt install mailutils
Ou consulter :
cat /var/mail/user
sudo nano /etc/mail/sendmail.mc
Exemple : définir le domaine :
define(`confDOMAIN_NAME', `your_domain.com')dnl
Regénérer la configuration :
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
Si une erreur de permission survient :
sudo sh -c "m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf"
Redémarrer :
sudo systemctl restart sendmail
nano email.txt
Contenu :
Subject: Test Email from Hostman
This is a test email sent using sendmail on Linux.
sendmail recipient@example.com < email.txt
mail
sendmail ne gère pas les pièces jointes nativement ; utilisez uuencode :
Installer sharutils :
sudo apt install sharutils
Exemple :
( echo "Subject: Email with attachment"; uuencode file.txt file.txt ) | sendmail recipient@example.com
Vérifier :
mail
mailx est un outil simple et efficace pour gérer les e-mails en terminal. Il fait partie du paquet mailutils.
sudo apt install mailutils
sudo yum install mailx
echo "This is the body of the email" | mailx -s "Test Email from Mailx" recipient@example.com
echo "Please find the attached document" | mailx -s "Email with Attachment" -A email.txt recipient@example.com
Envoyer des e-mails depuis la ligne de commande sous Linux est une méthode puissante pour automatiser des tâches de communication, diagnostiquer des serveurs ou tester des configurations. Avec sendmail et mailx, vous pouvez gérer aussi bien des messages simples que des envois avancés avec pièces jointes. Ce guide fournit toutes les instructions nécessaires pour commencer efficacement.