是否可以在队列中保存被拒绝的消息?

jos*_*osh 5 postfix

我在 Postfix 中有一个用于我的虚拟表的自定义 Postgresql 后端,但有时用户的电子邮件没有正确配置并且响应User unknown in virtual alias table错误。我希望能够将此类消息保存在队列中以供审核,并可能稍后发送到正确配置的电子邮件。是否可以配置 Postfix 将这些被拒绝的电子邮件发送到队列?

编辑:我发现的最佳解决方案是使用defer_if_rejectin main.cf,但如果我只想defer_if_reject在虚拟电子邮件地址表中找不到电子邮件地址时使用,那么我怎么能做到这一点?是否可以只将这种消息转发到单独的队列而不是通用deferred队列?

mas*_*oeh 2

如果您同意defer_if_reject解决方案,那么您可以在 smtpd_recipient_restriction 上添加此规则

defer_if_reject reject_unlisted_recipient
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看官方文档


对于HOLD解决方案,如果表中不存在帐户,您可以搜索 postgresql 查询以返回值 HOLD。快速谷歌搜索显示 Postgre 有功能WHERE NOT EXISTS查看此页面的一些示例)。(抱歉我不熟悉 Postgre :))

所以,在 smtpd_recipient_restriction 中定义

check_recipient_access pgsql:/path/to/pgsql/config
Run Code Online (Sandbox Code Playgroud)

有关 的内容/path/to/pgsql/config,请查阅此手册页