postfix

mail : Envoyer les email depuis la ligne de commande

mail (mailx) est une commande sous linux qui permet d’envoyer les emails depuis la ligne de commande. Dans un article précèdent nous avons vu comment installer un serveur de messagerie avec postfix, dans cet article nous allons voir comment envoyer les email depuis un serveur de messagerie sous Centos ou Ubuntu.

Ainsi pour appliquer ce tutoriel vous devez d’abord avoir en local un serveur smtp.

postfix

Fonctionnement de mail:

Le chemin emprunté par mailx pour envoyer un email peut être représenté comme ci-dessous :

mailx

Installation de mailx :

Pour installer mailx sous centos7/8 ou Redhat :

[root@postfix ~]# dnf install mailx
Puppet Labs PC1 Repository el 7 - x86_64 973 kB/s | 12 MB 00:12
CentOS-7 - Base 729 kB/s | 10 MB 00:14
CentOS-7 - Updates 1.0 MB/s | 10 MB 00:10
CentOS-7 - Extras 550 kB/s | 292 kB 00:00
Dependencies resolved.
Package Arch Version Repository Size
Installing:
mailx x86_64 12.5-19.el7 base 245 k
Transaction Summary
Install 1 Package
Total download size: 245 k
Installed size: 466 k
Is this ok [y/N]: y
Downloading Packages:
mailx-12.5-19.el7.x86_64.rpm 149 kB/s | 245 kB 00:01
Total 136 kB/s | 245 kB 00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : mailx-12.5-19.el7.x86_64 1/1
Verifying : mailx-12.5-19.el7.x86_64 1/1
Installed:
mailx-12.5-19.el7.x86_64

Pour installer mailx sur Ubuntu/debian :

[root@postfix ~]# apt-get install bsd-mailx

Envoyer un simple email :

Taper la commande suivante pour envoyer un email à l’adresse « mail@example.com » :

[root@postfix ~]# mail -s "sujet du mail" mail@example.com

Ecrivez ensuite votre mail, Lorsque vous avez terminé de taper le message, appuyer sur Ctrl+D et mailx affichera le mot EOT :

[root@postfix ~]# mail -s "sujet du mail" mail@example.com
Bonjour
Votre message.
Cordialement
EOT

Mail depuis un fichier :

Vous pouvez envoyer un email contenant dans un fichier :

[root@postfix ~]# mail -s "Sujet du mail" mail@example.com < /chemin/vers/fichier

Envoyer un mail à plusieurs destinataire :

[root@postfix ~]# echo "Corps du mail" | mail -s "sujet du mail" mail1@example.com,mail2@example.com

CC et BB :

Les options -a et -b peuvent être utilisés pour ajouter les adresse CC et BB respectivement :

[root@postfix ~]# echo "le corps du mail" | mail -s "Objet du mail" -c utilisateur1@example.com utilisateur2@example.com

Spécifier le nom et l’adresses source :

Utiliser l’option -r suivie du nom et l’adresse source, il faut mettre l’adresse entre <> :

[root@postfix ~]# echo "le corps du mail" | mail -s "l'objet du mail" -r "pierre<pierre@gmail.com>" utilisateur@example.com

Mettre une pièce jointe :

La pièce jointe peut être ajouté avec l’option -a :

[root@postfix ~]# echo "le corps du mail" | mail -s "l'objet du mail" -r "pierre<pierre@gmail.com>" -a /chemin/vers/fichier utilisateur@example.com