Pièce jointe dans un script BASH
Hello les geeks,
Depuis un petit moment je recherchais comment envoyer un pièce jointe dans un mail et ceci dans un script BASH.
J’ai enfin trouvé ce qu’il me convient comme solution et je vous la partage !
Dans cet exemple, je vais envoyer à « admin@djerfy.com » le fichier /var/log/secure.
Installation de sharutils
Cet outils vous sera nécessaire pour faire l’envoi de votre pièce jointe. Ceci est disponible sous RedHat / CentOS :
yum install sharutils
Sous Debian, je crois que c’est différent et c’est directement « uuencode ». Je n’utilise pas de Debian en serveur et cet astuce n’a pas été testé sous Debian.
Envoi de la pièce jointe
Passons maintenant sur le script avec la commande en question
(echo -e "Bonjour Djerfy,\n\nLe fichier secure du serveur ce trouve en pièce jointe de ce mail.\nCordialement." ; cat /var/log/secure | iconv -f utf8 -t iso-8859-1 | uuencode /var/log/secure) | mail -r noreply@.djerfy.com -s "Fichier de log secure" admin@djerfy.com
Ainsi le fichier /var/log/secure sera envoyé à l’adresse « admin@djerfy.com » depuis le compte interne « noreply@djerfy.com ». La première partie est directement le corps du message afin qu’il ne ce trouve pas vide 🙂
J’ai passé pas mal de temps à trouver cette astuce que je trouve super bien ! Maintenant mes envois de message reste très propre.
Je recherche encore la bonne méthode avec l’ajout du format HTML dans mon script BASH mais ceci ce fera rapidement avec un EoF. Ce n’est qu’une question de temps.