Avec l’installation minimale de n’importe quel système d’exploitation Linux, vous ne verrez pas la plupart des commandes de votre système. Dans l’installation minimale du système d’exploitation, seuls les paquets requis sont installés pour l’exécution d’un système d’exploitation et ont sauté les paquets inutiles. commande de courrier est utile pour envoyer des e-mails de la ligne de commande Linux qui est utilisé pour presque linux système d’exploitation. La plupart des systèmes basés sur Debian afficheront des erreurs comme « Le programme « mail » n’est actuellement pas installé. Vous pouvez l’installer en tapant »
Il existe de nombreuses autres alternatives à la commande de messagerie pour l’envoi d’e-mails à partir de l’interface de la ligne de commande Linux.
Installation de la commande « mail »
Utilisons l’une des commandes ci-dessous pour installer la commande de messagerie selon votre système d’exploitation. Pour les systèmes basés sur RHEL, cette commande installée à partir de paquets mailx rpm et sur le système basé sur Debian cette commande trouvée dans le paquet mailutils.
Exécutez une commande suivante basée sur le système d’exploitation :
-
- Installer la commande de messagerie sur CentOS/Redhat 7/6
sudo yum install mailx
- Installez la commande de courrier sur Fedora 22+ et CentOS/RHEL 8
sudo dnf install mailx
- Installer la commande de messagerie sur Ubuntu/Debian/LinuxMint
sudo apt-get install mailutils
- Installer la commande de messagerie sur CentOS/Redhat 7/6
Envoi d’e-mails et test
Après avoir installé des paquets de commande de courrier dans votre système, envoyez un e-mail de test en utilisant la commande ci-dessous.
echo "Message Body" | mail -s "Message Subject" receiver@example.com
Utilisation de la commande mailx
Une fois installée, la commande mailx peut être directement référencée avec le nom mail, il vous suffit donc de le saisir dans la ligne de commande.
1. Courrier simple
Exécutez la commande suivante, puis mailx attendra que vous saisissiez le message de l’e-mail. Vous pouvez appuyer sur Entrée pour les nouvelles lignes. Une fois la saisie du message terminée, appuyez sur Ctrl+D et mailx affichera EOT.
Après que mailx livre automatiquement l’e-mail à la destination.
$ mail -s "This is the subject" someone@example.com Hi someone How are you I am fine Bye EOT
2. Prendre un message à partir d’un fichier
Le corps du message de l’e-mail peut également être extrait d’un fichier.
$ mail -s "This is Subject" someone@example.com < /path/to/file
Le message peut également être redirigé à l’aide de la commande echo –
$ echo "This is message body" | mail -s "This is Subject" someone@example.com
3. Plusieurs destinataires
Pour envoyer le mail à plusieurs destinataires, spécifiez tous les mails séparés par une virgule
$ echo "This is message body" | mail -s "This is Subject" someone@example.com,someone2@example.com
4. CC et BCC
Les options “-c” et “-b” peuvent être utilisées pour ajouter respectivement des adresses CC et BCC.
$ echo "This is message body" | mail -s "This is Subject" -c ccuser@example.com someone@example.com
5. Précisez le nom et l’adresse de l’expéditeur
Pour spécifier un nom et une adresse “FROM”, utilisez l’option “-r”. Le nom doit être suivi de l’adresse entourée de “<>”.
$ echo "This is message body" | mail -s "This is Subject" -r "Harry<harry@gmail.com>" someone@example.com
6. Spécifiez l’adresse “Répondre à”
L’adresse de réponse est définie avec la variable d’option interne “replyto” à l’aide de l’option “-S”.
# replyto email $ echo "This is message" | mail -s "Testing replyto" -S replyto="mark@gmail.com" someone@example.com # replyto email with a name $ echo "This is message" | mail -s "Testing replyto" -S replyto="Mark<mark@gmail.com>" someone@example.com
7. Pièces jointes
Des pièces jointes peuvent être ajoutées avec l’option “-a”.
$ echo "This is message body" | mail -s "This is Subject" -r "Harry<harry@gmail.com>" -a /path/to/file someone@example.com
8. Utiliser un serveur SMTP externe
C’est une fonctionnalité exclusive, que vous obtenez uniquement avec heirloom mailx et non bsd mailx, ou la commande mail de gnu mailutils ou la commande mutt.
La commande mailx peut utiliser un serveur SMTP externe pour relayer le message. La syntaxe est un peu longue mais logique.
$ echo "This is the message body and contains the message" | mailx -v -r "someone@example.com" -s "This is the subject" -S smtp="mail.example.com:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="someone@example.com" -S smtp-auth-password="abc123" -S ssl-verify=ignore yourfriend@gmail.com
La même commande sur plusieurs lignes
$ echo "This is the message body and contains the message" | mailx -v \ > -r "someone@example.com" \ > -s "This is the subject" \ > -S smtp="mail.example.com:587" \ > -S smtp-use-starttls \ > -S smtp-auth=login \ > -S smtp-auth-user="someone@example.com" \ > -S smtp-auth-password="abc123" \ > -S ssl-verify=ignore \ > yourfriend@gmail.com
Vous pouvez utiliser les serveurs smtp de gmail et envoyer des e-mails via votre compte gmail. C’est génial!
Pour Gmail en particulier, vous devez activer les paramètres d’applications moins sécurisés avant de pouvoir envoyer des messages de ce type.
9. Verbose – regarder la communication smtp
Lorsque vous utilisez des serveurs smtp externes, vous pouvez choisir de regarder l’intégralité de la communication smtp effectuée en arrière-plan. Ceci est particulièrement utile lors du test ou du débogage des serveurs SMTP.
$ echo "This is the message body and contains the message from heirloom mailx" | mailx -v -s "This is the subject" -S smtp="smtp.gmail.com:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="mygmail@gmail.com" -S smtp-auth-password="mypassword" -S ssl-verify=ignore someone@example.com Resolving host smtp.gmail.com . . . done. Connecting to 74.125.68.109:587 . . . connected. 220 mx.google.com ESMTP je4sm32812877pbd.94 - gsmtp >>> EHLO enlightened 250-mx.google.com at your service, [122.163.43.21] 250-SIZE 35882577 250-8BITMIME 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250 SMTPUTF8 >>> STARTTLS 220 2.0.0 Ready to start TLS >>> EHLO enlightened 250-mx.google.com at your service, [122.163.43.21] 250-SIZE 35882577 250-8BITMIME 250-AUTH LOGIN PLAIN XOAUTH XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250 SMTPUTF8 >>> AUTH LOGIN 334 VXNlcmU6 >>> YmnbWFpbC5jb20= 334 UGFzcmQ6 >>> KnJgzKg== 235 2.7.0 Accepted >>> MAIL FROM:<enlightened@enlightened> 250 2.1.0 OK je4sm32812877pbd.94 - gsmtp >>> RCPT TO:<someone@example.com> 250 2.1.5 OK je4sm32812877pbd.94 - gsmtp >>> DATA 354 Go ahead je4sm32812877pbd.94 - gsmtp >>> . 250 2.0.0 OK 1417930703 je4sm32812877pbd.94 - gsmtp >>> QUIT 221 2.0.0 closing connection je4sm32812877pbd.94 - gsmtp
Dépannage
Dans le cas où les courriers ne sont pas livrés correctement, vous devez vérifier quelques points. La première chose à vérifier est qu’un serveur smtp (mta) s’exécute localement. La commande netstat peut dire que
$ sudo netstat -ltnp | grep 25 [sudo] password for enlightened: tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2541/master tcp6 0 0 :::25 :::* LISTEN 2541/master
Si un serveur stmp comme Postfix est en cours d’exécution et que les courriers ne sont toujours pas envoyés, essayez de reconfigurer Postfix par exemple. Sur les systèmes Ubuntu/Debian, cela peut être fait avec la commande dpkg-reconfigure
$ sudo dpkg-reconfigure postfix
Puis réessayez, la commande mail et cela devrait fonctionner. Si ce n’est toujours pas le cas, essayez de contacter votre fournisseur de serveur.
Aucun courrier des systèmes locaux
Si vous essayez d’envoyer des e-mails depuis votre ordinateur local vers une adresse gmail, votre e-mail sera probablement rejeté, alors n’essayez pas de le faire.
En effet, les ordinateurs ordinaires connectés à une adresse Internet ont une adresse IP qui n’est associée à aucun domaine valide en tant que tel, et gmail vérifie strictement ces informations d’identification avant d’approuver tout courrier à passer.
Notes et ressources
Outre mailx, il existe d’autres outils tels que Swaks et smtp-cli qui peuvent être utilisés pour envoyer des e-mails à partir de la ligne de commande et prendre en charge diverses fonctionnalités telles que la spécification de serveurs smtp et l’ajout de pièces jointes, etc.
Cependant, la commande mailx est disponible dans les référentiels par défaut de la plupart des distributions courantes, elle peut donc être installée facilement. De plus, elle conserve une syntaxe très similaire à celle de la commande mail, ce qui en fait un substitut à l’ancienne commande mail.
La commande mailx est même capable de lire les courriers des serveurs IMAP distants, mais c’est quelque chose que nous avons gardé en dehors de ce post et dont nous parlerons plus tard. Pour en savoir plus, consultez la page de manuel de la commande mailx avec “man mailx”.
Sujet connexe : Installer le serveur de messagerie sur Ubuntu 20.04 LTS à l’aide de Postfix, Dovecot et Roundcube
Merci de votez pour cet article :