我在 Postfix 中为虚拟表定制了一个 Postgresql 后端,但有时用户的电子邮件配置不正确,并会收到错误回复User unknown in virtual alias table
。我希望能够将此类消息保存在队列中以供审核,并可能稍后发送到正确配置的电子邮件。是否可以配置 Postfix 以将这些被拒绝的电子邮件发送到队列?
编辑:我发现的最佳解决方案是使用defer_if_reject
,main.cf
但如果我只想defer_if_reject
在虚拟电子邮件地址表中找不到电子邮件地址时这样做,那么我该如何实现呢?是否可以只将这种消息转发到单独的队列而不是通用队列deferred
?
答案1
如果您同意defer_if_reject
解决方案,那么您可以在 smtpd_recipient_restriction 上添加此规则
defer_if_reject reject_unlisted_recipient
有关详细信息,请查看官方文档
为了抓住解决方案,您可以搜索 postgresql 查询,如果表中不存在帐户,则返回值 HOLD。快速谷歌搜索显示 Postgre 具有功能WHERE NOT EXISTS
(查看此页面举几个例子)。(抱歉,我不熟悉 Postgre :))
因此,在 smtpd_recipient_restriction 中定义
check_recipient_access pgsql:/path/to/pgsql/config
有关的内容/path/to/pgsql/config
,请参阅此手册页