我需要将*@domain.com转发到脚本。
我知道EXIM方式和PROCMAIL方式 。
有一个更轻的方法吗? 任何经验? 哪一个是最快的,如果我只是想把它发送到脚本的电子邮件? (没有stream行帐户,没有别的)
(我知道qmail,但我不想安装“大”的软件,在服务器上吃太多的资源)。
你问的是真正的MTAs(邮件传输代理)而不是MDAs(邮件传递代理)。 你的问题包括两个意见(Procmail是一个MDA,Exim是一个MTA)。
在你的情况下,你将通过“传递”到你的脚本来处理任何MDA。 在exim中,像username: |/path/to/script这样的别名就足以让这个部分完成,而不需要任何花哨的内部路由或MDA。
至于MTA,Exim实际上是相当轻量级的。 它不提供popup帐户或其他任何东西,它只是处理与其他邮件服务器聊天接受消息,然后将其传递给某人(通常是一个MDA或其他邮件服务器)。
不要试图做一个非标准的设置,使短暂的正常保护,比如validationMTA在收到的邮件上运行,等等。 如上所述在exim中使用pipe道别名是将邮件路由到脚本并且仍然像MTA一样正常工作的简单方法。
你真的想要脚本运行,不pipe传递给它什么? 或者你想正确的SMTP处理?
最简单的方法可能是使用诸如Python的Twisted库来侦听SMTP或者一个node.js SMTP服务器脚本 ,并且在每个所需的消息上使用脚本。 这样你就可以得到完整的multithreading,而没有其他任何东西。
我想说的是,Exim和其他人对于99%的使用将足够快。
如果你可以在一个独特的IP上备份端口25,那么使用netcat来监听端口25呢? 这是真正的零负载和安装。 在重启/失败后重启它的包装脚本应该也很容易。
如果您只想接收电子邮件,则可以使用“服务器”(如http://code.google.com/p/subethasmtp/) 。
你可以有一个文件的Java程序使用这个库,将接受所有的电子邮件并执行一些代码。 它的问题是你将需要在机器上存在Java。