Install mutt.
apt-get install mutt
Run mutt with the following syntax:
echo "This is the message body" | mutt -a /somewhere/file -s "subject of message" -- [email protected]
Note that when you use variables, there is a slight modification necessary:
echo $BODY | mutt -a /pathto/file -s "$SUB" -- [email protected]
Note that the subject coming after -s needs to be enclosed in quotes. In fact whenever you need to use variables as parts of the mutt command, you need to enclose the respective variable in double quotes. Single quotes of course escape the variables and would use the variable name as literals.
The sender unless specified is taken as your [email protected], where username is your root shell username, which is usually root.
You can use a file as the BODY field of the email. Can you guess the syntax?
cat /pathto/bodyfile | mutt -a /somewhere/attachmentfile -s "subject of message" -- [email protected]
cat /pathto/bodyfile | mutt -a /somewhere/attachmentfile -s “subject of message” — [email protected]
If you need to specify the sender:
[[email protected]] ~ #cat ~/.muttrc set from="BackupServer <[email protected]>"
You can change the sender header at runtime, without relying on .muttrc, by building up a variable for the header using quotes for your literals, and concatenate (join) them with variables.
Eg:
Say you need your email to be coming from [email protected], with the name John B. Doe, you’d have to do something like this:
[email protected] fname="John B. Doe" hdrst='my_hdr From:'$fname' <'$email'>'
which will build the string:
my_hdr From:John B. Doe<[email protected]>
and send it to the mutt command as a custom header for your email.
echo $BODY | mutt -e "$hdrst" -a fullbackup -s "$SUB" -- [email protected]
Once again, note that the command will fail unless the variables $hdrst and $SUB are enclosed in double quotes.
References:
Joel G Mathew, known in tech circles by the pseudonym Droidzone, is an opensource and programming enthusiast.
He is a full stack developer, whose favorite languages are currently Python and Vue.js. He is also fluent in Javascript, Flutter/Dart, Perl, PHP, SQL, C and bash shell scripting. He loves Linux, and can often be found tinkering with linux kernel code, and source code for GNU applications. He used to be an active developer on XDA forums, and his tinkered ROMS used to be very popular in the early 2000s.
His favorite pastime is grappling with GNU compilers, discovering newer Linux secrets, writing scripts, hacking roms, and programs (nothing illegal), reading, blogging. and testing out the latest gadgets.
When away from the tech world, Dr Joel G. Mathew is a practising ENT Surgeon, busy with surgeries and clinical practise.