linux命令行发送邮件

Linux Mail 命令用法和例子

本文目的是通过命令行从服务器发送电子邮件或使用Shell脚本或Web应用程序自动发送电子邮件.
我们将讨论如何在Linux上使用mail命令通过终端发送电子邮件。

原理:mail命令调用标准的发送邮件二进制文件,该文件位于/usr/sbin/sendmail中。
本地:mail命令连接本地邮件传输代理(MTA),将电子邮件发送到目的地。
远端:邮件传输代理(MTA)的25端口的简单邮件传输协议(SMPT)服务器将接收电子邮件。
如果发件人计算机中没有Postfix之类的简单邮件传输协议(SMTP)服务器,则会出现诸如“发送邮件:无法打开邮件:25”之类的错误消息。

可以从不同的软件包安装mail命令,比如:
1) gnu mailutils
2) heirloom-mailx
3) bsd-mailx

本教程只讨论heirloom-mailx软件包。

安装:on CentOS/Redhat:
$ yum install mailx -y

发送一个邮件的命令:
$ mail -s “Enter the subject” user1@domain.com
回车以后的空行接着敲入你的邮件内容。
按Ctrl + D结束,可以看到 EOT 的标志。

发送的内容在文件中:
$ mail -s “The Subject” user1@domain.com < /root/testemail.txt
通过echo方式:
$ echo “THIS IS A TEST EMAIL” | mail -s “Enter the subject” user1@domain.com
发送给多个人:
$ echo “THIS IS A TEST EMAIL” | mail -s “Enter the subject” user1@domain.com,user2@domain.com
抄送:
$ echo “THIS IS A TEST EMAIL” | mail -s “Enter the subject” -c user1@domain.com,user2@domain.com
标示自己的名字和邮件地址:
$ echo “THIS IS A TEST EMAIL” | mail -s “Enter the subject” –r “Tomtom@gmail.com” user1@domain.com
回复:
$ echo “THIS IS A TEST EMAIL” | mail -s “Enter the subject” replyto= tom@gmail.com user1@domain.com
$ echo “THIS IS A TEST EMAIL” | mail -s “Enter the subject” replyto= “Tomtom@gmail.com” user1@domain.com
加附件:
$ echo “THIS IS A TEST EMAIL” | mail -s “Enter the subject” –r “Tomtom@gmail.com” –a /path/to/file user1@domain.com