我们在邮件队列中有很多来自某个地址的邮件。我想删除很多。我找到了按主题行删除的方法,但我想按发件人地址搜索,这似乎要棘手得多。(注意:这些主要是传出消息。)
一些谷歌搜索在HowToForge上找到了我这个命令,但没有解释它的作用。
postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } / spammer@example\.net/ { print $1 }' | tr -d '*!' | postsuper -d -
我试图使用mailqueuemng,但并没有走得太远(它没有--help,一方面)。
可以逐步分析管道以查看其作用。尝试按顺序运行每个命令,直到您完全理解它们:
打印队列
摆脱前几行
使用 [email protected] 搜索任何行;打印这些行的第一个字段。
摆脱任何
*!
这将输出一堆队列ID。
最后一个命令告诉 postfix 删除那些队列 ID。
postqueue
阅读关于、tail
、tr
和的 The Fine Man 页面postsuper
。awk 是一种更复杂的语言,它是它自己的小语言。你需要多一点的手册页来理解它的复杂性,尽管根据我的经验,99% 的 awk 用法很像那个特定的单行。很抱歉为已回答的问题添加答案。
这适用于每天必须这样做的人(面对垃圾邮件活动的客户)。
有一个人写了“pymailq”,一个可以帮助解决这个问题的工具。
我还分叉了这个工具,并添加了与 zimbra 的兼容性和一些附加功能。
这是原始回购
这是我的叉子
安装过程如下: