Lorsqu'on veut envoyer un courriel en shell, il peut parfois être utile d'y adjoindre un fichier. Si mailx permet d'envoyer aisément un message, il est moins aisé d'attacher un fichier. le man n'indique rien à ce sujet
Pour envoyer un message avec fichier attaché, il faut utiliser uuencode.
cat ${FILENAME} | uuencode ${FILENAME} | mailx -s "${sujet}" ${destinataire}
Seulement, le fichier attaché n'est pas tout à fait lisible. S'il s'agit d'un fichier texte et que vous le lisez sous Windows, vous verrez que les retours chariot ne permettent pas une bonne lisibilité. pour contourner ce problème, il suffit de changer le retour chariot grâce à sed :
sed "s/$/`echo \\\r`/" ${FILENAME} | uuencode ${FILENAME} | mailx -s "${sujet}" ${destinataire}
La même chose, avec une notation différente :
mailx -s "${sujet}" ${destinataire} <<-EOF
Bonjour,
Veuillez trouver ci-joint le fichier demandé
~< ! uuencode ${FILENAME} `basename ${FILENAME}`
~.
EOF