Envoyer des courriels avec pièce jointe depuis le terminal

Envoyer des courriels avec pièce-jointe en ligne de commande

J’ai corrompu bêtement mon fichier /etc/sudoers en l’ouvrant avec vi au lieu de visudo.
Pour m’en sortir j’ai dû rapatrier un autre fichier /etc/sudoers issue d’une même version d’install que la mienne via un courriel.
Du coup voici ce que j’ai fait, plus quelques bonus:

Voici quelques méthodes pour envoyer des mails en ligne de commande.

Prérequis : pour envoyer des courriels vers une adresse Internet, vous devez avoir installé et configuré un serveur de messagerie, comme Postfix par exemple.
Exemples : test@test.fr est l’adresse courriel utilisée pour les exemples ci-dessous. Remplacez-la par la votre adresse courriel.


Envoi de courriels simples


Envoi rapide d’un courriel

Ouvrez un Terminal et tapez :

echo "Bienvenue sur starmate.fr." | mail -s "Bienvenue" test@test.fr

L’option « -s » permet d’indiquer le sujet du message.


Envoi du contenu d’un fichier texte par courriel

mail -s "Contenu du fichier starmate.txt" test@test.fr < starmate.txt


Envoi de courriels avec pièces jointes

Le premier réflexe serait de taper une commande de ce type :

mail -s "sudoers" test@test.fr < /etc/sudoers

Mais ceci ne fonctionnera pas. L’envoi de fichiers binaires (donc autres que des fichiers textes) en pièce jointe nécessite un encodage, par exemple de type MIME.

Mutt est un client courriel en mode texte qui utilise ce type d’encodage.


Envoi d’un courriel avec pièce jointe

echo "Ci-joint le fichier /etc/sudoers" | mutt -s "sudoers" -a /etc/sudoers -- test@test.fr

La même chose sans texte d’explication :

echo | mutt -s "Sudoers" -a /etc/sudoers -- test@test.fr

ou

mutt -s "Sudoers" -a /etc/sudoers -- test@test.fr < /dev/null

Envoi d’un courriel avec plusieurs pièces jointes :

echo | mutt -s "sudoers et passwd" -a /etc/sudoers /etc/passwd -- test@test.fr

Envoyer tous les fichiers jpg de mon répertoire courant par courriel :

echo | mutt -s "Mes Photos" -a *.jpg -- test@test.fr

Envoyer tous les fichiers jpg par courriel avec le contenu d’un fichier texte en corps de message :

mutt -s "Ma voiture" -a *.jpg -- test@test.fr < message.txt

Derniers Articles