我有一个运行在Debian上的服务器(example.com),它没有configuration为接收电子邮件(至less我从来没有做过任何努力)。 根据我的理解,我只需要创build一个指向example.com的MX DNS条目即可接收邮件。
现在,一旦我收到电子邮件,我希望头+身体pipe道到一个脚本(可能会去),将parsing的内容,并将其添加到数据库)。
我听说我可以使用procmail,但这是我需要的吗? 我不需要设置一些能够接收来自MX路由的电子邮件吗?
PS:它看起来像后缀在我的服务器上运行(后做一个PS辅助),是我的MDA? 这是我必须configuration添加一些procmail魔术吗?
如果Postfixconfiguration正确,它将知道如何运行Procmail开箱即用。 只需创build一个简单的.procmailrc
文件并发送一条消息。 详细的指导,例如http://www.iki.fi/era/mail/procmail-debug.html,但在你花时间回答这个问题之前,请仔细阅读。 最后一段build议你不要。
你不需要绝对需要Procmail。 我相信你可以configurationPostfix直接写入你的Go程序。 但是,除非您的程序具有极强的抗失效性,否则Procmail提供了一个安全脚手架,至less在开发过程中可以作为安全networking使用。
要将用户帐户[email protected]
的每封邮件的副本作为goprogram
标准input,帐户所有者的/home/you/.procmailrc
只需要
# If goprogram is in a nonstandard directory, # add it to PATH PATH=$HOME/go/bin:$PATH :0c | goprogram
显然,请确保您有权执行goprogram
,并且您的PATH
包含安装它的目录。 (你可以很明显的将pipe道连接到/path/to/goprogram
并保持PATH
/path/to/goprogram
,但是如果事情变得不平凡的话,你应该避免乱抛垃圾给.procmailrc
并且在shell中使用硬编码的path,就像Procmail默认的PATH
列表/bin:/usr/bin:/usr/local/bin
等许多标准的系统级位置)
c
标志导致Procmail把它当作次要目的地,所以每个消息也将被写入默认的收件箱/var/mail/you
(或者也许是用户主目录中的Maildir
)。 一旦你确信你的goprogram
不会丢失邮件(testing磁盘满了,内存不足等),你可以取出c
,也许最终直接从Postfix master.cf
运行,并摆脱Procmail和Unix用户帐户you
赞成一个虚拟用户。
从技术上讲,Postfix是你的MTA和MSA; 它知道如何使用Procmail(或Maildrop,或其他一些替代品)作为MDA。 为了获得MXlogging,您需要MX指向的主机上的MTA。 一个正确configuration的Postfix只需要被告知哪个域名应该接受入站stream量(基本上是myorigin
和relay_domains
,但是应该准备好作为主MX
如果你不熟悉这个领域,你应该避免运行你自己的邮件服务器。 例如Amazon SES允许您轻松地在每封邮件中运行您的脚本,而无需担心稳定,安全的电子邮件服务的相当大的pipe理负担和高的学习曲线。