Linux Mail Command Usage with Examples
By Jithin 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
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
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” email@example.com
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” firstname.lastname@example.org < /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” email@example.com
We do also have option to send the email to multiple recipients.
$ echo “THIS IS A TEST EMAIL” | mail -s “Enter the subject” firstname.lastname@example.org,email@example.com
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 firstname.lastname@example.org,email@example.com
Specify From name and address
Specify “Reply-To” address
$ echo “THIS IS A TEST EMAIL” | mail -s “Enter the subject” replyto= firstname.lastname@example.org email@example.com
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<firstname.lastname@example.org>” –a /path/to/file email@example.com
If you need any further assistance please contact our support department.