1

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

  1. qmail-send 进程没有运行
  2. 邮件日志中的失败太多

对于发送通知电子邮件,我显然不想依赖 qmail,因为如果 qmail-send 进程没有运行,qmail 将不可用。但是,以下命令通过 qmail 发送通知电子邮件:

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

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

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

4

2 回答 2

2

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

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

另一种解决方案是使用 SMTP,但如果您需要从 bash 脚本发送电子邮件,这显然是一个糟糕的解决方案,因为 Bash 中没有包含通过 smtp 发送电子邮件的函数的标准库(与无法轻松发送邮件的 python 不同)使用 sendmail 但通过 SMTP)。

于 2011-02-16T06:22:22.357 回答
1

mail在 POSIX 中有一个实用程序。如果您仅用于 linux,sendmail则可以(但是您依赖于系统的(错误)配置,对吗?)。

总而言之,SMTP协议并不难。我会说你可以用纯 SMTP 说话。发送一封普通邮件大约需要四个命令。而且它是便携式的:) 但是如果有并发症,它可能会导致 PITA ......

于 2011-02-16T08:02:56.247 回答