如何在运行 sendmail 的服务器上将 fetchmail 与 procmail(或 maildrop)一起使用?

如何在运行 sendmail 的服务器上将 fetchmail 与 procmail(或 maildrop)一起使用?

我有亚马逊Linux中的实例AWS EC2。它们sendmail相互通信,并通过商业电子邮件提供商 SMARTHOST 发送外发邮件。没有 MX 记录指向我的 EC2 实例的公共 IP 地址,并且没有打开传入邮件端口。我真正想要的是每当用户提交表单时,商业网站 (goformz.com) 都会向我在这些实例上托管的网站发送带有 PDF 表单的 POST 请求。但在他们弄清楚如何做到这一点之前,我可以按照他们当前的行为,让他们通过电子邮件将 PDF 附件发送到商业电子邮件服务器上的地址。

经过一番绞尽脑汁后,看起来我可能可以通过安装fetchmailprocmail或来获得我需要的东西maildrop,无需修改我的sendmail配置。而且它“应该”非常简单。我熟悉使用 procmail在 ~/.forward 文件中作为用户,但是在阅读文档后,在我的 EC2 服务器上安装和配置它让我感到困惑。它看起来像两者fetchmail都想procmail作为守护进程运行,并将消息传递给其他服务器。我预计它将fetchmail作为守护进程运行,以某种频率通过 IMAP 从商业电子邮件帐户获取消息,然后同步地对每条消息调用procmail,规则是将消息通过管道传输到 PHP 脚本,该脚本将提取附件并处理其中的表单字段。如果脚本调用必须位于 ~/.forward 文件中,我会硬连接用户目录,但我不知道如何设置它。任何人都可以直接告诉我这一点,也许只需指向可以解决这种情况的文档的指针?

我发现了其他看起来相似的已回答问题,但没有一个启发了我。我发现似乎假设服务器将postfix作为 MTA 运行。

答案1

这看起来相当混乱。 Procmail 不作为守护进程运行,如果您这样配置,它会被 Fetchmail、Sendmail 等作为传递代理调用。不过,关于为什么您认为需要 Fetchmail 的整个故事似乎是错误的。但对您的问题的简短回答是,只需按照您的预期使用它即可。如果只是为了这个单一目的,您甚至可以将其配置为运行您的 PHP 脚本而不是 Procmail(尽管我怀疑您的 PHP 脚本在面对故障时是否会稳健,因此将其包装在 Procmail 中可能是一个好主意) 。

我对 Fechmail 不太熟悉,但是 IIRC 你将其配置为使用 Procmail 与类似的东西

mda "procmail /home/you/.procmailrc"

也许您-d还想要一个选择或一些其他装饰品。

您运行的邮件服务器通常非常无趣,当消息要在本地传递时,它们都具有模糊相似的调度 Procmail(或另一个 LDA)的机制。如果常规 MTA 流应与 Fetchmail 流分开,您可能希望将其配置为绕过默认的系统范围/etc/procmailrc,但在您的情况下,听起来您根本不需要从 Sendmail 运行 Procmail,因此您可以保持简单。

相关内容