9 mail/mailx command examples to send emails from command line on Linux

Send mails from command line

la commande mail est une commande essentielle qui devrait être disponible sur n’importe quel serveur linux afin que divers services et autres applications web puissent générer et transmettre des emails.

Dans un post précédent sur mail command, nous avons vu comment la commande mail peut être utilisée pour envoyer des e-mails à partir de la ligne de commande sur votre serveur linux.,

Dans ce tutoriel, nous allons utiliser une version améliorée de la commande mail. Il s’appelle mailx (ou simplement mail lorsqu’il est installé), et il peut faire beaucoup plus de choses que ce que l’ancienne commande mail du paquet GNU mailutils peut faire.

comment ça marche

la commande mail / mailx a besoin d’un serveur smtp local (Mta) en cours d’exécution afin de livrer les emails. L’itinéraire emprunté par l’e-mail est un peu comme ceci –

mail -> sendmail -> local MTA -> recipient MTA 

le MTA du destinataire serait le serveur smtp de gmail si votre destinataire est quelqu’un à gmail.com par exemple., Pour le MTA local, vous devez installer un serveur smtp comme Postfix. Une installation de base de Postfix avec une configuration minimale fonctionnerait dans la plupart des cas.

installer la commande mailx

sur les systèmes basés sur Ubuntu/Debian la commande mailx est disponible à partir de 2 paquets différents-

1. héritage-mailx
2. bsd-mailx

nous utiliserons le paquet heirloom-mailx car il a plus de fonctionnalités et d’options.
sur les systèmes basés sur CentOS/Fedora, il n’y a qu’un seul paquet nommé « mailx » qui est le paquet heirloom.,

pour savoir quel paquet mailx est installé sur votre système, vérifiez la sortie « Man mailx » et faites défiler jusqu’à la fin et vous devriez voir quelques informations utiles.

# ubuntu/debian$ sudo apt-get install heirloom-mailx# fedora/centos$ sudo yum install mailx

en utilisant 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 taper cela dans la ligne de commande.

1. Simple mail

exécutez la commande suivante, puis mailx vous attend pour entrer le message de l’e-mail. Vous pouvez appuyer sur Entrée pour les nouvelles lignes. Lorsque vous avez terminé de taper le message, appuyez sur Ctrl + D et mailx afficherait EOT.,

Après que mailx envoie automatiquement l’e-mail à la destination.

$ mail -s "This is the subject" Hi someoneHow are youI am fineByeEOT

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" < /path/to/file

Le message peut également être rattachée à l’aide de la commande echo –

$ echo "This is message body" | mail -s "This is Subject" 

3. Plusieurs destinataires

Pour envoyer le message à plusieurs destinataires, spécifier tous les e-mails séparés par une virgule

$ echo "Ceci est le corps du message" | mail-s "C'est l'Objet" ,

4., CC et BCC

Les options « -c » et « -b » peuvent être utilisées pour ajouter des adresses CC et BCC respectivement.

$ echo "Ceci est le corps du message" | mail-s "C'est l'Objet" -c 

5. Spécifiez à partir du nom et de l’adresse

pour spécifier un nom et une adresse « à partir », utilisez l’option « -r ». Le nom doit être suivi de l’adresse enveloppée dans «  ».

$ echo "Ceci est le corps du message" | mail-s "C'est l'Objet" -r "Harry<>" 

6., Spécifiez l’adresse « Reply-To »

l’adresse reply to est définie avec la variable d’option interne « replyto » en utilisant l’option « -s ».

7. Pièces jointes

Les pièces jointes peuvent être ajoutées avec l’option « -a ».

$ echo "Ceci est le corps du message" | mail-s "C'est l'Objet" -r "Harry<>" -un /chemin/vers/fichier 

8. Utiliser un serveur SMTP externe

Il s’agit d’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 en avant. La syntaxe est un peu longue mais a du sens.

Voici une ventilation

Vous pouvez utiliser les serveurs SMTP gmail et envoyer des e-mails via votre compte gmail. C’est tellement cool!
pour gmail spécifiquement, vous devez activer les paramètres des applications moins sécurisées avant de pouvoir envoyer du courrier comme ça.

9. Verbose-regarder la communication smtp

lorsque vous utilisez des serveurs smtp externes, vous pouvez choisir de regarder la totalité de la communication smtp effectuée en arrière-plan., Ceci est particulièrement utile lors du test ou du débogage de serveurs smtp.

Dépannage

Dans le cas où les messages ne sont pas remis correctement, vous devez vérifier quelques petites choses. La première chose à vérifier est qu’un serveur smtp (MTA) s’exécute localement. La commande netstat peut dire que

Si un serveur stmp comme Postfix est en cours d’exécution et que les mails ne fonctionnent toujours pas, 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 courriers de votre ordinateur local à une adresse gmail, votre courrier serait très probablement rejeté, alors n’essayez pas de le faire.

en effet, les ordinateurs ordinaires connectés à Internet address 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 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. En outre, il maintient une syntaxe très similaire à celle de la commande mail, ce qui en fait un remplacement de l’ancienne commande mail.,

la commande mailx est même capable de lire des mails à partir de serveurs IMAP distants, mais c’est quelque chose que nous avons gardé à l’écart de ce post et que nous parlerions plus tard. Pour en savoir plus consultez la page de manuel pour la commande mailx avec « l’homme mailx ».

Share

Laisser un commentaire

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