Select Boot Arch Linux (x86_64) in the boot menukodi 18apache-http-server2Configurer apache 2 pour la mise en cache du navigateurAMD Radeon Select Boot Arch Linux (x86_64) in the boot menukodi 18apache-http-server2Configurer apache 2 pour la mise en cache du navigateurAMD Radeon
Shell Script : Sauvegarde automatique d'un site WordPress

bash : Installation de la commande « mail »

Select Boot Arch Linux (x86_64) in the boot menukodi 18apache-http-server2Configurer apache 2 pour la mise en cache du navigateurAMD Radeon(Dernière mise à jour le: 11 mai 2021)

Partager :  

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 

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

Read other posts by lotfi

Partager :  

Laisser un commentaire

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

deux × un =

Translate »