Postfix 重新请求错过的消息以供 milter 处理

Postfix 重新请求错过的消息以供 milter 处理

我遇到过一种情况,我们忘记在 main.cf 中配置 smtpd_milters,但很多电子邮件已经进入并存储在 /var/spool/postfix/deferred 队列中。现在我已经修复了 postfix 配置中的 smtpd_milters,我希望那些已经存储在延迟队列中的电子邮件能够由 milter 处理。有没有什么办法可以实现?我尝试将这些文件移动到接收、活动等,但没有帮助。任何帮助都非常感谢!

答案1

必须通过 smtpd 重新提交邮件。

为此,首先获取要重新处理的邮件的队列 ID。

mailq

将原始消息保留

postsuper -h [QUEUEID]

提取电子邮件消息

postcat -qbh [QUEUEID] > /tmp/email.eml

重新提交邮件

cat /tmp/email.eml | sendmail -t

检查您的队列和日志输出以确保邮件正确发送,之后您可以删除原始消息。

postsuper -d [QUEUEID]

答案2

由于您正在运行postfix,您可以尝试以下命令:

postqueue -f

这将导致 postfix 刷新队列并尝试传递所有排队的消息。或者,您可以使用:

postqueue -i <queue_id>

安排立即发送由 标识的消息<queue_id>。这样,您可以在实际刷新整个队列之前尝试您的邮件过滤设置。您可以postqueuepostqueue 文档页面

相关内容