我们在邮件队列中有很多来自某个地址的消息。 我想删除他们中的很多。 我已经find了通过主题行删除的方法,但是我想通过发件人地址进行search,这似乎是一个棘手的问题。 (注意:这些主要是传出的消息。)
一些谷歌search在HowToForge上find了我的这个命令,但是没有解释它的function。
postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } / spammer@example\.net/ { print $1 }' | tr -d '*!' | postsuper -d -
我正在尝试使用mailqueuemng,但并没有达到很远的距离(它没有一个–help,一件事)。
可以一步一步地分析pipe道,看看它做了什么。 尝试按顺序运行每个命令,直到您全部了解它们:
postqueue -p
打印队列
postqueue -p | tail -n +2
摆脱了第一对夫妇的线路
postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } / spammer@example\.net/ { print $1 }'
用[email protected]任何行; 打印这些行的第一个字段。
postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } / spammer@example\.net/ { print $1 }' | tr -d '*!'
摆脱任何*!
这将输出一堆队列ID。
最后的命令告诉postfix删除那些队列ID。
阅读postqueue
, tail
, tr
和postsuper
上的Fine Man页面。 awk是一个更复杂的,它是它自己的小语言。 您需要的不仅仅是一个手册页来理解其复杂性,尽pipe根据我的经验,99%的awk使用情况非常类似于特定的一行。
对不起,添加一个已经回答的问题的答案。
这是每天必须这样做的人(面对垃圾邮件的客户)。
有一个人写了“pymailq”,一个可以帮助解决这个问题的工具。
我也分叉了这个工具,并添加了与zimbra的兼容性和一些额外的function。
这是原始的回购
这是我的叉子
安装过程如下所示:
git clone https://github.com/moebiuseye/pymailq.git cd pymailq git checkout dev virtualenv venv source venv/bin/activate python ./setup.py install pqshell