How can I email an attachment from the command line

Is it possible to email attachments from the command line?

If possible, I'd like something as simple as:

mail -a myfile.txt -t [email protected] -s "Here's my file"

Of all the mail user agents in the Ubuntu repository, it appears that mutt is the command-line MUA that is blessed with Long Term Support.

According to the manual, you can do something exactly like:

mutt -a myfile.txt -s "Here's my file" -- [email protected]

except it won't go anywhere since one also needs a Mail Transfer Agent. Popular ones are:

  • the venerable sendmail
  • postfix
  • exim4
  • qmail
  • nullmailer

and the only ones that Canonical seems to support are postfix (thanks for the correction Steve) and exim4.

One could also say that xdg-email is also a proper Ubuntu MUA, but it is a bare-bones front end which only executes your preferred MUA on your behalf.

If you'd like advice on which MTA might be suitable for your use, perhaps open another question here.


I had bad trouble with sending attachment files, too. When I sent an email without attachment, it was successful but was not with attachment. This problem was existent with sendemail, mutt, mail, mailx , uuencode commands.

Fortunately, It was solved funnily. I use Gmail for sending email. You can configure your gmail for sending emails via commands in terminal as declared at http://www.linuxandlife.com/2013/01/send-email-from-linux-terminal.html .

You can send a text email using:

mail -s "hello" [email protected] < /home/masoud/YOURFILE.txt 

but you can't send same file as attachment as below:

mail -s "hello" [email protected] -a /home/masoud/YOURFILE.txt

or:

mail -s "hello" -a /home/masoud/YOURFILE.txt [email protected]

Finally, I understood that only this format could send an attachment:

echo "your message here" | mail -s "title" -a /home/masoud/YOURFILE.txt [email protected]

Funnily, the difference is existence of the "echo" command.

Update: 201808

Seems that the -a option has been changed with Uppercase -A for attachment now. The -a seems to be for changing header according to doc


I found that the command and parameters have been changed recently.

If your want to send your attachments with this command:

mail -s "your subject" [email protected] -A /your/attachment/absolute/path < /home/you/message.txt

The option attachment should be -A which is CAPITAL A.