Once you get familiar to using the Linux terminal, you wish to do everything on your system by simply typing commands including sending emails and one of the important aspects of sending emails is attachments.
Especially for Sysadmins, can attach a backup file, log file/system operation report or any related information, and send it to a remote machine or workmate.
In this post, we will learn ways of sending an email with attachment from the Linux terminal. Importantly, there are several command line email clients for Linux that you can use to process emails with simple features.
Requirement
To effectively and reliably use this tutorial, you must have a working mail system or setup one of the mail transfer agents (MTA’s) for Linux on your system.
A MTA is an application responsible for sending and receiving emails from one host to another.
Below are the various, well known methods of sending email with attachment from the terminal.
1. Using mail Command
mail is part of the mailutils (On Debian) and mailx (On RedHat) package and it is used to process messages on the command line.
$ sudo apt-get install mailutils # yum install mailx
Now its time to send an email attachment using mail command a shown.
$ echo "Message Body Here" | mail -s "Subject Here" [email protected] -A backup.zip
In the above command, the flag:
-s
– specifies the message subject.-A
– helps to attach a file.
You can as well send an existing message from a file as follows:
$ mail -s "Subject here" -t [email protected] -A backup.zip < message.txt
2. Using mutt Command
mutt is a popular, lightweight command line email client for Linux.
If you do not have it on your system, type the command below to install it:
$ sudo apt-get install mutt # yum install mutt
You can send an email with attachment using the mutt command below.
$ echo "Message Body Here" | mutt -s "Subject Here" -a backup.zip [email protected]
where the option:
-s
– indicates the message subject.-a
– identifies the attachment(s).
Read more about Mutt – A Command Line Email Client to Send Mails from Terminal
3. Using mailx Command
mailx works more like the mutt command and it it also a part of mailutils (On Debian) package.
$ sudo apt-get install mailutils # yum install mailx
Now send the attachment mail from the command-line using mailx command.
$ echo "Message Body Here" | mailx -s "Subject Here" -a backup.zip [email protected]
4. Using mpack Command
mpack encodes the named file in one or more MIME messages and sends the message to one or more recipients, or writes it to a named file or set of files, or posts it to a set of newsgroups.
$ sudo apt-get install mpack # yum install mpack
To send a message with attachment, run the command below.
$ mpack -s "Subject here" file [email protected]
That’s all! Do you have in mind any other methods of sending emails with attachment from the Linux terminal, that are not mentioned in the list above? Let us know in the comments.
From the mutt man page:
When attaching single or multiple files, separating filenames and recipient addresses with
"--"
is mandatory, e.g:The
-a
option must be placed at the end of command line options.So one has to place a double dash between attachment and recipient. Took me a bit to figure that out, maybe it helps someone else here
Hello, I think it missing to configure a client as an account on google to permit send emails.
It’s a lowercase
'-a'
to attach a file, not upper.mailx -s "Subject Here" -a backup.zip [email protected]
-a
is for headers-A
is for fileswhen I tried to install the commands which you shared on this link, It states error.
Could you guide me on what really I need to do?
following are the commands and error message:-
~$ sudo apt-get install mailutils
sudo: error while loading shared libraries: libsudo_util.so.0: cannot open shared object file: No such file or directory
sudo: error while loading shared libraries: /usr/lib/sudo/libsudo_util.so.0: invalid ELF header
Swaks – Swiss Army Knife for SMTP – is also helpful, rtfm.
Hi Team, I’m trying to email the first x lines from a text file using mutt and head commands without much success, can someone please help me on the same.