从linux命令行发送电子邮件的不同方式

时间:2011-02-08 14:21:13

标签: email bash qmail

对于我们的网络项目,我们需要一个可靠的电子邮件分发机制。由于过去的糟糕经历,我写了一个bash脚本(每小时执行一次),如果发送通知电子邮件

  1. qmail-send进程未运行
  2. 邮件日志中有太多失败
  3. 为了发送通知电子邮件,我显然不想依赖qmail,因为如果qmail-send进程没有运行,qmail将不可用。但是,以下命令通过qmail发送通知电子邮件:

    echo "failure rate critical" | mail -s "qmail notification" my@email.com
    

    没有qmail从linux命令行发送电子邮件的最简单方法是什么?我可以使用sendmail吗?

    如果你们有更智能的报警系统来监控qmail,请告诉我。

2 个答案:

答案 0 :(得分:2)

调用/usr/sbin/sendmail二进制文件。无论您使用哪种MTA,它通常都可用,如果它名为sendmail,您可以确定它支持标准的sendmail接口。

使用它的最简单方法是调用sendmail -t,然后将包含有效To标头的电子邮件写入其标准输入。如果省略-t,则必须将收件人地址作为命令行参数传递。

另一个解决方案是使用SMTP,但是如果你需要从bash脚本发送电子邮件,这显然是一个糟糕的解决方案,因为Bash中没有标准库包含通过smtp发送电子邮件的功能(不像在python中你不能使用sendmail但通过SMTP轻松发送邮件。

答案 1 :(得分:1)

您在POSIX中有mail实用程序。如果你只是用于linux,那么sendmail是可以的(但是你依赖系统的(错)配置,对吧?)。

总而言之,SMTP协议并不困难。我会说你可以用纯SMTP说话。这是关于发布一个简单邮件的四个命令。它是便携的:) 但如果出现并发症,可能会导致PITA ......