Sendmail:使用SMART_HOST作为本地邮件

我们正在运行一个出站垃圾邮件filter,我们希望能够通过该filter发送邮件,即使是发给本地用户。 有没有办法强制sendmail使用SMART_HOST,即使是在本地交付?

这是我想要的。 我的主机是example.com。 如果我从[email protected](使用SMTP)向[email protected]发送电子邮件,我希望电子邮件从mail.example.com到outbound.example.com到inbound.example.com,然后返回到mail.example.com。 这可能没有创build一个无限循环?

这听起来像是作为LDA的procmail工作。 用它来调用你的垃圾邮件filter来处理本地生成的邮件。

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

并在您的全球procmail规则,寻找一个x头不存在,然后发送邮件进行扫描

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

是的,你也要设置MAIL_HUB和LOCAL_RELAY选项。 请参阅Sendmail自述文件中标题为MASQUERADING AND RELAYING的章节。


单独在Sendmail中,这是不可能的(据我所知)。 你可以做的是:

  1. configuration所有本地邮件(submit.mc)将所有电子邮件转发到outbound.example.com
  2. configuration防火墙规则,将任何不是源自inbound.example.com的连接redirect到25 / TCP和587 / TCP(以及您正在使用的任何其他SMTP端口)到outbound.example.com(您需要包括回送以及物理接口)

理论上讲,应该抓住几乎所有的东西,但是这可能会让事情变得糟糕。 我不知道如果有人在本地调用sendmail会发生什么。 如果您正在运行networking邮件安装,请检查是否可以将其configuration为通过outbound.example.com而不是本地发送所有电子邮件。

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