有没有办法将电子邮件保留在 Postfix 邮件队列中以供调查/调试?我想延迟交付并将电子邮件保留在队列中,以便我检查其内容。完成此操作后,我将刷新队列并让 Postfix 交付它。我该怎么做?
如果无法处理单封电子邮件 - 是否可以将所有电子邮件排队一段时间?
答案1
这抓住功能应该足以满足您的要求,或者在尚未传递的消息上使用它:
postsuper -h QUEUEID
由于您无法提前知道队列 ID,并且可能无法在 Postfix 将邮件排队和最终投递之间的时间内看到它,因此我建议提前定义要保留的消息的标准。
大多数smtpd_*_restrictions
允许提供地图,可以自动标记某些邮件以供保留。示例:
# in main.cf
smtpd_client_restrictions = [..]
reject_unknown_reverse_client_hostname
[..]
check_reverse_client_hostname_access hash:/etc/postfix/badrdns permit
# in /etc/postfix/badrdns
.subdomains.example.com HOLD one of these is not a spammer
调查后,释放或从队列中删除邮件。
postqueue -p
# view a message from queue
postcat -qbhe QUEUEID | less
# deliver previously held
postsuper -H QUEUEID
# drop (DELETE!) a message
postsuoer -d QUEUEID
完成后,不要忘记删除 HOLD 规则(否则您会积累很长的队列)。