Table des matières

mail

Mail simple

Envoyer un mail ayant en corps du message un fichier texte :

cat < ./mon-fichier.txt |mail -s "sujet du mail" user@domaine.com

Pour envoyer un mail en rédigeant directement le corps du message :

cat <<EOF |mail -s "sujet du mail" user@domaine.com
Bonjour,

Ceci est un mail automatique

Cordialement,
EOF

Pour envoyer à plusieurs destinataires :

echo "Message for all" | mail -s "sujet for all" "user1@domaine.com;user2@domain.com"

Mail avec entête modifié

Envoyer un mail en changeant l'expéditeur :

echo "contenu" | mail -a 'from: expediteur@domain.com' -s "Sujet" destinataire@domain.com

Ou :

echo "contenu" | mail -r expediteur@domain.com -s "Sujet" destinataire@domain.com

Envoyer le contenu d'une page Web :

curl http://www.domaine.com/page.html | mail -a 'Content-type: text/html; charset=UTF8' -a 'from: expediteur@domain.com' -s "Sujet" destinataire@domain.com

Mail avec pièces jointes

Envoyer un mail avec une piece jointe avec la commande mail

uuencode piece.zip piece.zip |mail -s "mail avec piece jointe ZIP" user@domaine.com

Envoyer un mail avec un corps de message et plusieurs pièces jointes :

cat <<EOF | mail -s "mail avec 2 pieces jointes ZIP" user@domaine.com
Bonjour

Vous trouverez ci-joints deux fichiers zip

Cordialement,

$(uuencode test.zip piece01.zip)
$(uuencode test.zip piece02.zip)
EOF

Envoyer un mail avec tous les fichiers contenu dans le répertoire local :

cat <<EOF | mail -s "plein de pieces jointes" user@domaine.com
Bonjour

Vous trouverez ci-joints les fichiers de mon répertoire

Cordialement,

$(for i in $(ls); do uuencode $i $i; done)
EOF

Forcer l'utilisation d'un serveur SMTP

Il faut d'abord installer un paquetages complémentaire (ex sous Debian):

apt-get install heirloom-mailx

Pour envoyer le mail :

echo 'test' | mailx -S smtp=smtp.domain.com -s "test" user@domain.com