Postfix – 通过smarthost只发送被拒绝的邮件

我正在努力改善与我一起工作的组织(无垃圾邮件)的邮件传递。 我们一直使用我们普通邮件服务的smtp服务器作为智能主机进行传送,但最近他们已经阻止了帐户,因为它发送了太多的邮件。

我已经查看并注册了SMTP中继服务,但是这些服务相当昂贵。 我不想直接发送邮件的原因是,所有邮件都交付至关重要,而且我不想花太多时间检查日志,以确保我们的邮件能够通过所有人。

所以我想知道 – 是否有可能设置后缀,以便它会首先尝试直接发送邮件,如果失败,然后通过智能主机发送邮件? 这应该允许我们发送邮件给每个人,而不必付费通过SMTP中继发送所有的邮件。

我认为,如果你在同一台机器上运行两个并行的postfix实例,并且实例的“deferred”队列目录正常链接(我认为符号链接可以)到“incoming”目录,第二个实例configuration为路由到智能主机。 实例1应该尝试交付; 如果失败,则将其写入延迟队列,实例2的qmgr将视为新邮件并路由到智能主机。

(您可能需要对实例1进行一些调整,以调整它在共享目录中的重试次数,并且可能存在各种locking和争用条件问题。)

更好的解决scheme可能仍然是2个并行实例,但是没有共享目录,并且脚本扫描实例1的延迟队列,使用postsuper将其暂停,将其复制到实例2的传入队列,并从实例1中清除。可以每隔几分钟从一个cron作业触发,或者可能是一个inotify钩子。