Howto: Send The Content Of a Text File Using mail Command In Unix / Linux

by on April 17, 2012 · 5 comments· LAST UPDATED April 17, 2012

in

I'd like to send an email with the content of a text file using mail command in Unix / Linux operating system. How do I do it?

mail command (also mailx command) is an intelligent mail processing system under Unix and Linux. You need to use the following syntax to send an email using mail command:

 
mail -s 'Subject-Here' you@cyberciti.biz < input.file
mail -s 'Uptime Report' you@cyberciti.biz < /tmp/output.txt
 

Where,

  • -s 'Subject' : Specify subject on command line.
  • you@cyberciti.biz: To email user.
  • /tmp/output.txt : Send the content of /tmp/output.txt file using mail command.

Send an email as attachment from Unix command line

Either can use the mutt command or uuencode command as described below:

 
### Attach /tmp/filelist.tar.gz and read the content of a text using /tmp/body.txt ###
mutt -s "Backup status" -a /tmp/filelist.tar.gz you@cyberciti.biz < /tmp/body.txt
 

OR

 
### Attach /tmp/list.tar.gz and and send it  ###
uuencode /tmp/list.tar.gz /tmp/list.tar.gz | mailx -s "Reports" user@eu.corp.cyberciti.biz
 
### Email photo.png along with a text message read from body.txt ##
(cat body.txt; uuencode photo.png photo.png) | mail -s "Subject" user@cyberciti.biz
 


If you would like to be kept up to date with our posts, you can follow us on Twitter, Facebook, Google+, or even by subscribing to our RSS Feed.


{ 5 comments… read them below or add one }

1 pubudu April 24, 2012 at 11:28 am

Thanks nixCraft…you guys are doing a awesome job..keep it up

Reply

2 Yogesh May 4, 2012 at 3:39 am

Use mail with from and to email IDs
cat /home/user/input.file | mail -s ‘Subject-Here’ -v notify-to@email-id.com — -f from.email-id.com
I wonder if we can specify from email ID while using mutt too?

Reply

3 Imran May 14, 2012 at 7:24 am

Hi, thank you for this great tutorial. Just wondering if there’s a pre-requirement for the above to work? I have tried on my Debian Linux box but my emails have not received the sent message. My Linux box is connected to the Internet. It’s just a web server.

Reply

4 Vivek Gite May 14, 2012 at 7:44 am

You need local smtp (such as Postfix, sendmail) installed. On debian you need to start exim email service.

Reply

5 Minh Phu March 18, 2013 at 1:34 am

i need to send mail with multi attach file by commands line, can you help me

Reply

Leave a Comment

You can use these HTML tags and attributes for your code and commands: <strong> <em> <ol> <li> <u> <ul> <kbd> <blockquote> <pre> <a href="" title="">

Tagged as: , , , , , , , , , , , , , , , , , , , , , , , , , ,

Previous Faq:

Next Faq: