Email attachment van command line

  Unix

mailx

Op de meeste moderne Linux machine staat tegenwoordig mailx, met mailx is het eenvoudige om een attachment te versturen.
staat mailx er niet op kan je het als volgt installeren.

$ sudo apt-get install mailutils
$ sudo yum install mailx

mail versturen gaat dan als volgt.

$ echo "dit is een regel" | mailx -s "Onderwerp hier" -a backup.zip gebruiker@foo.bar

let op het gebruik van de ” ” bij het subject als je die er niet bij plaatst word er geen attachment mee gestuurd

 

mail en uuencode

 

Als je een attachment wilt sturen van af een UNIX systeem en je hebt geen client beschikbaar zoals mutt/pine. of je wilt attachments versturen vanuit scripts kan je uuencode gebruiken met mail.
dit werkt op de meeste UNIXen, Ik zelf heb het in iedergeval gebruikt op LINUX, AIX, HP-ux en Solaris

in het voorbeeld gaan we het volgende bestand mailen gegevens.tar.gz
gebruik het uuencode commando als volgt:

$ uuencode gegevens.tar.gz gegevens.tar.gz | mailx -s "Mijn gegevens" user@email.com

de naam van het bestand komt 2 keer voor achter het uuencode commando, dit is geen type fout. je gebruikt dus 2 keer de zelfde naam.

als je er een begeleidend mailtje bij wilt hebben zet dan je tekst in een tijdelijke file met je favorieten editor (vi mijnmail.txt) als je die opgeslagen hebt stuur je die als volgt.

$ (cat mijnmail.txt; uuencode gegevens.tar.gz gegevens.tar.gz) | mail -s "Subject" user@email.com

Om meerdere attachments in 1 mail te versturen ga je als volgt te werk

$ uuencode 1.tar.gz 1.tar.gz > /tmp/out.mail
$ uuencode 2.tar.gz 3.tar.gz >> /tmp/out.mail
$ uuencode 3.tar.gz 3.tar.gz >> /tmp/out.mail
$ cat mijnmail.txt >> /tmp/out.mail
$ mail -s "Reports" user@email.com < /tmp/out.mail