Articles

Linux mail command examples-send mails from command line (Français)

Posted by admin

Send mails from command-line

pouvoir envoyer des e-mails depuis la ligne de commande depuis un serveur est très utile lorsque vous devez générer des e-mails par programme à partir de scripts shell ou d’applications web par exemple.

Ce tutoriel explique comment utiliser la commande mail sur linux pour envoyer des mails à partir de la ligne de commande à l’aide de la commande mail.,

comment fonctionne la commande mail

Pour ceux qui sont curieux de savoir exactement comment la commande mail livre les mails aux destinataires, voici une petite explication rapide.

la commande mail appelle le binaire sendmail standard (/usr/sbin/sendmail) qui se connecte à son tour au MTA local pour envoyer le courrier à sa destination. Le MTA local est un serveur smtp fonctionnant localement qui accepte les mails sur le port 25.

mail command -> /usr/sbin/sendmail -> local MTA (smtp server) -> recipient MTA (and Inbox)

Cela signifie qu’un serveur smtp comme Postfix doit être en cours d’exécution sur la machine où vous avez l’intention d’utiliser la commande mail., Si aucun n’est en cours d’exécution, vous obtenez le message d’erreur « envoyez-mail: Impossible d’ouvrir le courrier:25 ».

installer la commande mail

la commande mail est disponible à partir de nombreux paquets différents. Ces paquets sont disponibles dans les dépôts par défaut de la plupart des distributions linux populaires comme debian, ubuntu, centos et fedora.

Voici la liste de certains des paquets qui fournissent la commande mail.

1. gnu mailutils
2. héritage-mailx
3. bsd-mailx

chaque saveur a un ensemble différent d’options et de fonctionnalités prises en charge., Par exemple, la commande mail/mailx du paquet heirloom-mailx est capable d’utiliser un serveur smtp externe pour envoyer des messages, tandis que les deux autres ne peuvent utiliser qu’un serveur smtp local.

dans ce tutoriel, nous utiliserons la commande mail du paquet mailutils, qui est disponible sur la plupart des systèmes basés sur Debian et Ubuntu.

Utiliser la commande apt-get pour installer

$ apt-get install mailutils

Maintenant, vous devriez avoir le mail de commande prêt à travailler.

le courrier des exemples de commande

Voici quelques exemples d’utilisation de la commande mail pour envoyer des mails à partir de la ligne de commande., Ces exemples vous donneront une idée de base des différentes options et fonctionnalités prises en charge par la commande mail.

Remarque: Si vous essayez d’envoyer un courrier de test à un fournisseur de messagerie comme gmail ou outlook, vous devez exécuter ces commandes sur un serveur correctement configuré. Si vous essayez d’envoyer du courrier à partir de votre ordinateur local ou de votre bureau, la plupart des filtres anti-spam le bloqueraient probablement.

1. Envoi d’un simple mail

exécutez la commande ci-dessous, pour envoyer un email à l’option s spécifie l’objet du mail suivi de l’adresse email du destinataire.,

$ mail -s "Hello World" 

la commande ci-dessus n’est pas terminée lorsque vous appuyez sur Entrée. Ensuite, vous devez taper le message. Lorsque vous avez terminé, appuyez sur ‘ Ctrl-D ‘au début d’une ligne

$ mail -s "Hello World" Cc:Hi PeterHow are youI am fineGood Bye<Ctrl+D>

le shell demande le champ’ Cc ‘ (copie carbone). Entrez L’adresse CC et appuyez sur Entrée ou appuyez sur Entrée sans rien ignorer.

à Partir de la ligne suivante, tapez votre message. Appuyer sur Entrée créerait une nouvelle ligne dans le message. Une fois que vous avez terminé d’entrer le message, appuyez sur . Une fois que vous faites cela, la commande mail expédierait le message pour la livraison et terminé.

2., L’objet et le Message en une seule ligne

Pour spécifier le corps du message en une seule ligne de commande, utiliser le style suivant

$ mail -s "This is the subject" <<< 'This is the message'

Ou comme ceci

$ echo "This is the body" | mail -s "Subject" -aFrom:Harry\<\> 

3. Prendre message à partir d’un fichier

Si le message électronique est dans un fichier puis on peut l’utiliser directement pour envoyer le mail. Ceci est utile lors de l’appel de la commande mail à partir de scripts shell ou d’autres programmes écrits en perl ou php par exemple.

$ mail -s "Hello World" < /home/user/mailcontent.txt

Ou un rapide une ligne

$ echo "This is the message body" | mail -s "This is the subject" 

4., Spécifier les destinataires CC et CCI

Autres paramètres utiles dans la commande mail:

-c email-address (CC - send a carbon copy to email-address)-b email-address (BCC - send a blind carbon copy to email-address)

Voici et exemple de comment vous pouvez utiliser ces options

$ mail -s "Hello World" -c -b 

5. Envoi à plusieurs destinataires

Il est également possible de spécifier plusieurs destinataires en les joignant avec une virgule.

$ mail -s "Hello World" ,

6. Spécifiez le nom et l’adresse de

l’option « -a » permet de spécifier des informations d’en-tête supplémentaires à joindre au message. Il peut être utilisé pour fournir le nom et l’adresse « de »., Voici un exemple rapide

# echo "ceci est le corps du message"/mail-S "Ceci est le sujet" -aFrom: 

l’option a ajoute essentiellement des en-têtes supplémentaires. Pour spécifier le nom, utilisez la syntaxe suivante.

$ echo "Ceci est le corps" | mail-s "Sujet" -aà partir de:Harry\<\> 

Notez que nous avons à échapper au moins/un grand flèches, car ils ont une signification particulière pour le shell. Lorsque vous émettez la commande à partir d’un script, vous l’omettez.

7., Envoyer du courrier à un utilisateur système local

pour envoyer du courrier à un utilisateur système local, utilisez simplement le nom d’utilisateur à la place de l’adresse du destinataire

$ mail -s "Hello World" username

Vous pouvez également ajouter « @hostname » au nom d’utilisateur, où le nom d’hôte doit être le nom

8. Verbose output

parfois, lors du test de serveurs de messagerie, vous souhaitez vérifier les commandes SMTP utilisées par la commande de messagerie., Utilisez l’option »- v »pour ce

$ mail -v -s "This is the subject" <<< 'This is the message'

Si le courrier ne parvient pas à livrer en raison d’un serveur de messagerie mal configuré par exemple, le journal des commandes smtp affichera ce qui a mal tourné.

envoyer du courrier avec des pièces jointes en utilisant Mutt

la commande mail pouvait faire des choses de base jusqu’à présent, mais à l’avenir, elle manque de fonctionnalités importantes comme l’envoi de pièces jointes.

Nous devons donc utiliser un autre outil de ligne de commande appelé mutt. Mutt est comme une version améliorée de la commande mail avec une syntaxe très semblable.

Les utilisateurs de Debian / Ubuntu peuvent installer mutt avec la commande apt.,

$ apt-get install mutt

utilisateurs Fedora/CentOS ou Red Hat Enterprise Linux (RHEL):

$ yum install mutt

Maintenant, vous êtes prêt à envoyer du courrier avec des pièces jointes avec une interface de ligne de commande.

envoyer un simple mail

$ echo "This is mutt from universe" | mutt -s "This is mutts subject" 

envoyer un mail avec pièce jointe

utilisez L’option « a » pour spécifier le chemin du fichier à joindre

$ mutt -s "Subject" -a /path/to/file -- < home/user/mailcontent.txt

selon la syntaxe des options mutt, il est nécessaire de séparer les fichiers et les destinataires avec un double tiret « –« . L’option « – a  » devrait également être la dernière.,

envoyer un courrier avec des scripts bash/shell

cet exemple montre comment la sortie d’une commande peut être utilisée comme message dans l’e-mail.
voici un script shell facile qui signale l’utilisation du disque par courrier.

#!/bin/bashdu -sh | mail -s "disk usage report" 

Ouvrez un nouveau fichier et ajouter les lignes ci-dessus pour ce fichier, l’enregistrer et l’exécuter sur votre boîte. Vous recevrez un e-mail contenant la sortie « du-sh ».

lire les mails

ce n’est pas quelque chose d’intéressant et vous ne le feriez pas dans un scénario de la vie réelle. Il est juste montré pour le plaisir de celui-ci.

la commande mail peut être utilisée pour lire les mails., Il suffit de l’exécuter sans options et il répertorierait tous les mails dans votre boîte de réception

$ mail

Voici un exemple de sortie

$ mailHeirloom mailx version 12.5 6/20/10. Type ? for help."/var/mail/enlightened": 7 messages 3 unread O 1 Enlightened Sat Dec 6 11:33 21/658 This is the subject O 2 Enlightened Sat Dec 6 11:34 773/25549 This is the subject O 3 Enlightened Sat Dec 6 16:43 20/633 This is the subject O 4 Enlightened Sat Dec 6 16:44 20/633 This is the subject U 5 Mail Delivery Syst Sat Dec 6 16:50 74/2425 Undelivered Mail Returned to Sender U 6 Enlightened Sat Dec 6 16:51 19/632 This is mutts subject U 7 Enlightened Sat Dec 6 16:52 19/647 This is mutts subject?

à la fin se trouve q point d’interrogation qui est une invite interactive en attente de votre commande. Entrez simplement le numéro de l’e-mail que vous souhaitez lire et appuyez sur Entrée. Il ouvrirait le courrier alors.

Après avoir lu l’e-mail, entrez  » q  » et appuyez sur Entrée pour revenir. Entrez z et appuyez sur entrée pour ramener la liste des e-mails.

la commande mail par défaut lit les emails du répertoire « /var/mail/ »., Ainsi, chaque utilisateur a un répertoire de messagerie séparé.

cette façon de stocker et de récupérer les mails n’est pas très utile ou pratique dans la vie réelle, où l’adresse e-mail se compose d’un nom de domaine avec un nom d’utilisateur et un seul serveur pourrait héberger des e-mails pour plusieurs domaines.

Maildir-utils de la commande

 » mu  » est un ensemble d’outils de ligne de commande pour Linux/Unix qui vous permettent de trouver rapidement les e-mails que vous recherchez.,

Debian/Ubuntu, les utilisateurs peuvent utiliser la commande apt-get pour installer

# apt-get install maildir-utils

Pour rechercher des mails de william avec l’objet de rapports utilisez la commande suivante

$ mu find from:william subject:report

Pour vérifier les configurations de courrier à l’utilisation de l’option info.

# mu-tool infoVERSION=2.99.97SYSCONFDIR=/etcMAILSPOOLDIR=/var/mail/SCHEME=mboxLOG_FACILITY=mail.....

Notes et Ressources

La commande mail est un très commande de base pour envoyer des mails. Il doit être présent et correctement configuré sur n’importe quel serveur linux, afin que les mails soient générés et livrés correctement.,

la commande mail est principalement utilisée lorsque vous écrivez des scripts bash pour envoyer des e-mails depuis un serveur de manière automatisée. En outre, la commande mail n’est pas très utile comme solution de messagerie.

Si vous avez besoin de configurer un système de messagerie complet sur votre serveur avec la possibilité d’envoyer et de recevoir des e-mails sur votre propre domaine, alors allez-y et installez des applications comme postfix, dovecot.

consultez cet article:
installez Postfix mail server et Dovecot sur Ubuntu ou Debian

Si vous cherchez un programme de mailing plus puissant, Utilisez des commandes comme mailx, swaks, etc., Ils disposent également des options nécessaires pour spécifier des serveurs smtp externes.

Leave A Comment