Sendmail:使用 SMART_HOST 发送本地邮件

Sendmail:使用 SMART_HOST 发送本地邮件

我们正在运行出站垃圾邮件过滤器,我们希望能够通过该过滤器发送邮件,即使是发送给本地用户的邮件。有没有办法强制 sendmail 使用 SMART_HOST,即使邮件将在本地投递?

例子

我想要的是这个。我的主机是 example.com。如果我从[电子邮件保护](使用 SMTP)至[电子邮件保护],我希望电子邮件从 mail.example.com 发送到 outbound.example.com,再发送到 inbound.example.com,然后再返回到 mail.example.com。这可以实现吗,而且不会造成无限循环?

答案1

这听起来像是 procmail 作为 LDA 的工作。使用它来为任何本地生成的电子邮件调用垃圾邮件过滤器。

定义(PROCMAIL_MAILER_PATH',/usr/local/bin/procmail')FEATURE(local_procmail_lmtp)MAILER(procmail)MAILER(procmailnoalias)dnl

并在您的全局 procmail 规则中,查找不存在的 x-header,然后发送邮件进行扫描

例如:0H * < 10000000 * !^X-Locally-Scanned: MySuperScanner

答案2

是的,您还需要设置 MAIL_HUB 和 LOCAL_RELAY 选项。请MASQUERADING AND RELAYING参阅Sendmail 自述文件


仅使用 Sendmail 是不可能实现的(据我所知)。不过你可以这样做:

  1. 配置所有本地邮件(submit.mc)将所有电子邮件转发至outbound.example.com
  2. 配置防火墙规则,将任何非来自 inbound.example.com 的连接重定向到 25/TCP 和 587/TCP(以及您正在使用的任何其他 SMTP 端口),再将连接重定向到 outbound.example.com(您需要包括环回接口和物理接口)

理论上,这应该可以捕获几乎所有的东西,但可能会造成严重破坏。我不知道如果有人在本地调用 sendmail 会发生什么。如果您正在运行 webmail 安装,请检查是否可以将其配置为通过 outbound.example.com 而不是本地发送所有电子邮件。

在 mail.example.com 中集成垃圾邮件过滤器可能会更简单。

相关内容