答案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 是不可能实现的(据我所知)。不过你可以这样做:
- 配置所有本地邮件(submit.mc)将所有电子邮件转发至outbound.example.com
- 配置防火墙规则,将任何非来自 inbound.example.com 的连接重定向到 25/TCP 和 587/TCP(以及您正在使用的任何其他 SMTP 端口),再将连接重定向到 outbound.example.com(您需要包括环回接口和物理接口)
理论上,这应该可以捕获几乎所有的东西,但可能会造成严重破坏。我不知道如果有人在本地调用 sendmail 会发生什么。如果您正在运行 webmail 安装,请检查是否可以将其配置为通过 outbound.example.com 而不是本地发送所有电子邮件。
在 mail.example.com 中集成垃圾邮件过滤器可能会更简单。