We all know the importance of emails these days for information transfer. There are many free emails service providers which we used for use like Gmail, Yahoo, RediffMail etc, which provides a web interface for sending and receiving emails. But this is not enough, sometimes we also required to send emails from system command line. This tutorial will provide you the ways to send emails from Linux command line. This is useful for sending email through our shell scripts, cron jobs etc.
There are various ways to send emails from the command line but here I am sharing few options used by most users. You can use anyone option given below to send email from Linux command line.
1. Using ‘sendmail’ Command
Sendmail is a most popular SMTP server used in most of Linux/Unix distribution. Sendmail allows sending email from command line. Use below instructions to send email using ‘sendmail‘ command.
Create a file using following content.
[[email protected] ~]# cat /tmp/email.txt Subject: Terminal Email Send Email Content line 1 Email Content line 2
Now send email using the following command.
[[email protected] ~]# sendmail [email protected] < /tmp/email.txt
2. Using ‘mail’ Command
mail command is most popular command to send emails from Linux terminal. Use few of below examples to send an email.
[[email protected] ~]# mail -s "Test Subject" [email protected] < /dev/null
Also, you can send the email with an attachment.
# mail -a /opt/backup.sql -s "Backup File" [email protected] < /dev/null
You may face issue: Bash: mail: command not found
Also, we can add comma separated emails to send the email to multiple recipients together.
# mail -s "Test Email" [email protected],[email protected] < /dev/null
3. Using 'mutt' command
Mutt is basically used for reading mails from Linux terminal from local user mail boxes, also useful to read emails from POP/IMAP servers. Mutt command is little similar to mail command. Use few of below examples to send email.
# mutt -s "Test Email" [email protected] < /dev/null
Send email including attachment
# mutt -s "Test Email" -a /opt/backup.sql [email protected] < /dev/null
4. Using 'SSMTP' Command
sSMTP allows users to send emails from SMTP server from Linux command line. For example to send an email to user [email protected] use following command. Now type your subject of the email as below with keyword Subject. After that type your message to be sent to the user, After finishing your message press CTRL+d (^d) to send the email.
# ssmtp [email protected] Subject: Test SSMTP Email Email send test using SSMTP via SMTP server. ^d
Read more: How to Setup SSMTP Server on Linux
5. Using 'telnet' Command
As my experience all system administrators use telnet command to test remote port connectivity test or login to server remotely. Most of newbie in Linux doesn't know that we can send email using telnet also, which is better way to trouble shoot email sending problems. Below is an example of email sending.
telnet localhost smtpTrying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. 220 fbreveal.com ESMTP Sendmail 8.13.8/8.13.8; Tue, 22 Oct 2013 05:05:59 -0400 HELO yahoo.com250 tecadmin.net Hello tecadmin.net [127.0.0.1], pleased to meet you mail from: [email protected]250 2.1.0 [email protected] Sender ok rcpt to: [email protected]250 2.1.5 [email protected] Recipient ok data354 Enter mail, end with "." on a line by itself Hey This is test email only Thanks .250 2.0.0 r9M95xgc014513 Message accepted for delivery quit221 2.0.0 fbreveal.com closing connection Connection closed by foreign host.
Thank you for using this article. We will add more ways soon with this list. We also request you to help me with more commands which you know and not listed above.