最轻量的 MTA,用于将所有邮件转发到脚本

最轻量的 MTA,用于将所有邮件转发到脚本

我需要将 *@domain.com 转发到一个脚本。

我知道EXIM 方式PROCMAIL方式

有没有更简单的方法?有什么经验吗?如果我只想将电子邮件发送到脚本,哪一个是最快的?(没有弹出帐户,没有其他的)

(我知道 qmail,但我不想安装会占用服务器太多资源的“大”软件)。

答案1

您问的其实是 MTA(邮件传输代理)而不是 MDA(邮件投递代理)。您的问题包括对两者的评论(Procmail 是 MDA,exim 是 MTA)。

在您的案例中,您只需“交付”到您的脚本即可处理任何 MDA。在 exim 中,类似这样的别名username: |/path/to/script足以完成该部分,无需复杂的内部路由或 MDA。

至于 MTA,Exim 实际上相当轻量。它不提供 pop 帐户或其他任何东西,它只处理与其他邮件服务器的聊天以接受消息,然后将其传递给某人(通常是 MDA 或其他邮件服务器)。

不要尝试进行非标准设置,短路常规保护,例如 MTA 对收到的邮件进行验证等,这样会让以后的生活变得更加复杂。只需将正确的部分连接在一起即可。使用上述的 exim 中的管道别名是一种非常简单的方法,可以将邮件路由到脚本,并且仍然可以像 MTA 一样正常运行。

答案2

您是否真的希望脚本只运行,而不管传递给它的是什么?或者您是否希望正确处理 SMTP?

最轻松的方式可能是使用类似 Python 的 Twisted 库来监听 SMTP 或 node.jsSMTP 服务器脚本,并让其在每条需要的消息上触发一个脚本。这样,您便可获得完整的多线程,而不需要太多其他阻碍。

我想说的是,Exim 和其他类似的程序对于 99% 的使用来说速度已经足够快了。

答案3

如果您可以在唯一 IP 上腾出端口 25,那么使用netcat监听端口 25 怎么样?这确实是零负载和安装。在重启/失败后重新启动它的包装脚本也应该很容易。

答案4

如果你只想接收电子邮件,你可以使用类似http://code.google.com/p/subethasmtp/

您可以使用此库创建一个 1 文件 Java 程序,它将接受所有电子邮件并为其执行一些代码。问题是您需要在机器上安装 Java。

相关内容