Linux Mail Command Usage with Examples

By on November 29th, 2016

Have you imagined to send emails through command line from a server or automate an email with all the shell scripting or web applications? Linux servers facilitate the ability to send emails from the command line or  by scripting. In this tutorial we will be discussing on how to use the mail commands on Linux in order to send emails through terminal.


Working of mail command

Whenever a mail is sent, initially the mail command calls the standard send mail binary which is located in /usr/sbin/sendmail. This call will connect the local Mail Transfer Agent (MTA) into sending the email to the destination. The Simple Mail Transfer Protocol (SMPT) server on port 25 which is locally running Mail Transfer Agent (MTA) will receive the emails.

Error message like “send-mail: Cannot open mail: 25” occur if Simple Mail Transfer Protocol (SMTP) server like Postfix is not available in the sender machine.


Installation of mail command

Installation of mail command can be accessed from different packages. Following are the list:

1) gnu mailutils
2) heirloom-mailx
3) bsd-mailx

It is to be noted that the features and options included in the packages are different from one another. In this case we have heirloom-mailx package which enables the connection of an external Simple Mail Transfer Protocol (SMTP) server to send messages. The other two packages are used to connect only local Simple Mail Transfer Protocol (SMTP) server. In this tutorial we will be discussing on heirloom-mailx package.

Install mail command on CentOS/Redhat:

$ yum install mailx -y


Mail command

The following command will allow you to send an email with the subject. The option ‘s’ allow you to an send email with subject followed by the recipient address.

$ mail -s “Enter the subject”

Don’t you think something important is missing, the message! The next step before pressing the enter buttons is to type the message or if any CC (Carbon Copy) required.

After the completion of required fields press Ctrl + D, this will give an output EOT.


Send message from a file

The content of the message can be included from a file also.

$ mail -s “The Subject” < /root/testemail.txt

Messages can also be including by using echo command and piping it.

$ echo “THIS IS A TEST EMAIL” | mail -s “Enter the subject”


Multiple recipients

We do also have option to send the email to multiple recipients.

$ echo “THIS IS A TEST EMAIL” | mail -s “Enter the subject”,


CC and BCC

Blind carbon copy (BCC) and carbon copy (CC) address can also be attached within a command in Linux.

$ echo “THIS IS A TEST EMAIL” | mail -s “Enter the subject”                                                                   -c,


Specify From name and address

$ echo “THIS IS A TEST EMAIL” | mail -s “Enter the subject” –r “Tom<>”


Specify “Reply-To” address

$ echo “THIS IS A TEST EMAIL” | mail -s “Enter the subject” replyto=

$ echo “THIS IS A TEST EMAIL” | mail -s “Enter the subject” replyto= “



The option –a is used to add an attachment along with the email.

$ echo “THIS IS A TEST EMAIL” | mail -s “Enter the subject” –r “Tom<>” –a /path/to/file


If you need any further assistance please contact our support department.



6 Responses to “Linux Mail Command Usage with Examples”

  1. Steve says:

    Please can you show the configuration of the mail client

  2. BUCHI says:

    Cannot parse address `subject”’ (while expanding `subject”’): Malformed email address

  3. Muchtall says:

    Just FYI: This article uses “smarquotes”, which are terrible for documenting command line examples.Readers need to be aware that you have to remove the quotes and re-type actual quote characters.

    ” … ” <– Quotes
    “ … ” <– Smart quotes

  4. Dr Pepper Can says:

    Thank you kindly for making and sharing this tutorial. It’s great.
    Question about “CC and BCC”. Isn’t the recipient’s email address supposed to be at the very end? (after the CC’s recipients addresses)

    Now, how about a tutorial on how to check and read emails? 😉

  5. Himanshu says:

    Mail not being sent when there is an error in script, does anyone know how to fix it?

Leave a Reply