Sending email or mail with attachment from command or shell prompt
If you are looking to send email with attachment via shell script or at shell prompt/command line (read as bash prompt), use mutt command.
Mutt is a small but very powerful text based program for reading electronic mail under UNIX /Linux operating systems, including support for color terminals, MIME, and a threaded sorting mode.
Please note that mutt is a pure MUA and cannot send e-mail without proper email server . You need a working Mail Transfer Agent (MTA) such as sendmail or postfix. I am assuming that you have configured email server.
Install mutt
If mutt is not installed, use apt-get or yum or up2date command as follows (login as a root user):
(A) Debian Linux / Ubuntu Linux user use following command to install mutt:
# apt-get install mutt
B) Fedora / CentOS or Red Hat Linux (RHEL) user can use following command to install mutt:
# yum install mutt
OR
# up2date mutt
C) FreeBSD user use following command to install mutt via pkg_add command:
# pkg_add -v -r mutt
How do I send email attachments from a command prompt?
1) Use mutt command as follows to send an email with attachment:
$ mutt -s "Test mail" -a /tmp/file.tar.gz vivek@nixcraft.co.in < /tmp/mailmessage.txt
Where,
- vivek@nixcraft.co.in - is the recipient
- /tmp/mailmessage.txt - is the main body of the e-mail (read message from the file "mailmessage.txt")
- /tmp/file.tar.gz - is an attachment (with option -a)
- "Test mail" - is a subject line (option -s)
See also:
- Sample bash script to send an email
- mybackup script to backup selected files/directories and email them as .tar.gz file to your email account
- Metamail ftp://ftp.research.telcordia.com/pub/nsb/
E-mail this to a Friend
Printable Version
You may also be interested in other helpful articles:
- How to send anonymous email from shell prompt using mixmaster
- FreeBSD > Sending a Message by E-Mail
- Best Linux / UNIX Posts of 2007: Part ~ II
- Best Linux / UNIX Posts of 2007: Part ~ I
- Postfix mail server block .bat, .exe .com .vbs mime attachments - common virus spreading files
Discussion on This Article:
Leave a Reply
We encourage your comments, and suggestions. But please stay on topic, be polite, and avoid spam. Thank you very much for stopping by our site!
Tags: linux operating systems, mail transfer agent, mta, mutt command, send e mail attachments



I didnt recieve any mail in my yahoo inbox when i tried to send the message from the command line using mutt
mutt -s “testmail” anugula_kiran@yahoo.co.in > /tmp/k
please i am eager to know about it
May be yahoo is blocking your email! It should work. If you are on PPP then it is high possiblity!
–
Vivek Gite
I can’t be sure, but it looks like you’re using the wrong directional switch. In your command use, you have “>”. I’m presuming you’re attempting to send the message in the file /tmp/k which means you should probably be using the “
In the command:
mutt -s “Test mail” -a /tmp/file.tar.gz vivek@nixcraft.co.in
Hey i was hunting 4 this info and found it via yahoo. This is easy than those crazy scripts… thx for good info in this blog.
thanks this blog is bookmarked now.
thanks, you made my day (or better, tomorow ) with this hint…
nice post worth to bookmark
thanks for this post!
[...] You can send email with attachment via shell script or at shell prompt/command line using mutt or mail command. This will not hide your IP address. [...]
How do I use MUTT to send multiple attachments in a single email?
Multiple attachments use -a for each ie:
mutt -s “Test Mail” -a attach1 -a attach2 -a attach3 vivek@nixcraft.co.in
Nice post thanks guys!
I just want learn more things in linux,
How do you send an e-mail to multiple recipients with mutt?
is the reading in of the text file required or can I type a one-line body from the command line?
This is a reply to message 12, regarding using “-a” to send multiple attachments in one email.
I use the same mutt command line in my script. My challenge is I can’t hard code the files with “-a”. I need to search for all logs, find out what they are and mutt them.
I need something like:
mutt -s “log files” -a *.log sue@homtmail.com < summary
How do I code “-a *.log”?
Reply to #17: Regarding how to use “-a” for an indeterminate number of attachments; here’s one way:
y=”"
for x in $(ls -1 *.log) ; do
y=”$y -a $x”
done
mutt -x “subject” $y myaddr@company.com < somefile
How do you send an e-mail to multiple recipients with mutt?
In reply to 19: Putting all addresses into quotes should work.
mutt -s “My message” -a attchmnt “address1 address2″
its working well in system which serve as proxy but not working from my desk. How to get it work in a proxy ed network ?
Thanks, I was searching for an hour for this! To do the equivalent with sendmail is crazy!
man mpack
Thank you!
worked like a charm for me, thanx guys :]
hi all, i am getting this error
mutt -s “Test Shell Mail” malath.alakeel@gmail.com < email
Error sending message, child exited 127 (Exec error.).
Could not send the message.
How to use mapck to send multiple files? i am able to send only one file with the command. Please help
See our FAQ:
Email multiple file attachment from Solairs / AIX / HP-UX UNIX/ Linux command line
HTH