删除 Qmail queue 内的邮件


在 sendmail 要删除在 queue 内的邮件很简单,只需直接在 /var/spool/mqueue 下面删除就好,但在 Qmail 就较麻烦,执行以下指令会删除 queue 内所有邮件:

qmailctl stop
find /var/qmail/queue/mess -type f -exec rm {} ;
find /var/qmail/queue/info -type f -exec rm {} ;
find /var/qmail/queue/local -type f -exec rm {} ;
find /var/qmail/queue/intd -type f -exec rm {} ;
find /var/qmail/queue/todo -type f -exec rm {} ;
find /var/qmail/queue/remote -type f -exec rm {} ;
qmailctl start

你可以将以上指令放到一个 shell script 内方便执行。如果想更改邮件留在 queue 内的时间,可以修改 /var/qmail/control/queuelifetime 档案内的数值,里面的数值是代表邮件留在 queue 内的秒数,默认值为 86400 秒,即一天。而如果想删除乎合特定规则的队列邮件,可以安装一些现成的工具,以下是其中两个不错的选择:

Qmail-Remove: 可以删除有指定字串规则的邮件,在默认的情况下不会直接删除,而将邮件移到 $qmail-queue/yanked/,可以检视个别邮件及手动还原。

qmHandle: 可以实现 qmail-qread 及 qmail-qstat 的功能,能检视 qmail queue 的内容,及输出统计资料,输出的格式更加容易观看,而且可以删除一个或多个邮件。

Tags:

Leave a Reply