Postfix中有一套Mail Queue Management(邮件队列管理)机制,所有队列中的邮件都可以全自动的处理,但在发送大量邮件的时候,有必要对这个队列进行手工的维护处理,比如说,删除队列中的邮件. 以下是一些常用的命令:


列出目前在 Mail Queue 中的邮件

mailq


刪除所有在 Queue 中的邮件

postsuper -d ALL


刪除所有正在 deferred 队列中的邮件 (删除曾经发送失败的邮件 )

postsuper -d ALL deferred


刪除所有正在 deferred 队列中的邮件 ( 可看出哪些信被刪除了 )

find /var/spool/postfix/deferred -type f -exec rm -vf /{/} /;


刪掉三天以前无法发送的邮件

find /var/spool/postfix/deferred -type f -mtime +3 -exec rm -f /{/} /;


列出目前所有无法发送的邮件

find /var/spool/postfix/deferred -type f -exec ls -l –time-style=+%Y-%m-%d_%H:%M:%S {} /;

刪除超过 5 天的 “defer” 队列中的退信记录 find /var/spool/postfix/defer -type f -mtime +5 -exec rm -f /{/} /;


预设所有跟Postfix 相关的邮件都会放在/var/spool/postfix/ 目录下,想了解Postfix是如何管理队列的,可以参考 qmgr -Postfix queue manager 的手册.
以下是每个目录的用途

MAIL QUEUES

* incoming 收信箱

* active 正在准备发送的邮件

* defered 无法发送的邮件,等待重发

* corrupt 无法读取或者损坏的邮件

* hold 暂停的邮件,需要手工启动 DELIVERY STATUS REPORTS

* bounce 每一位收件者的送信状态,记录为什么退信由 bounce(8) 管理

* defer 每一位收件者的寄送状态,说明为什么延迟由 defer(8) 管理

* trace 每一位收件者的寄送状态信息,说明被 Postfix 用 “sendmail -v” 或 “sendmail -bv” 命令执行的状态由 trace(8) 管理