从主题匹配的mailq中删除

我有一个mailq这是备份与多个电子邮件与相同的主题行。 我想删除mailq中与特定主题行匹配的所有电子邮件,以免发送。 任何想法如何做到这一点? 与垃圾邮件相关的相当紧迫。

Postfix没有像exigrep这样的实用工具,所以你需要grep这个主题的队列文件,然后通过pipe道队列id来postsuper来删除它们

使用典型的postfix安装,电子邮件将在/ var / spool / postfix中。 有几个队列。 你想停止后缀,以便您可以安全地使用postsuper删除电子邮件。 这个简短的脚本将删除所有匹配特定string的电子邮件。 在我们的案例中,我们需要find数以千计的电子邮件,都有相同的主题。

在这种情况下,电子邮件都被推迟了,因为我们的邮寄服务由于超限而被拒绝了。

cd /var/spool/postfix/deferred grep -r -i -l "This was the subject line" ./ | cut -d/ -f3 | postsuper -d - 

一些关键的注意事项:

  • grep -l返回匹配的文件名,这是匹配消息的queueid
  • 消息都在不同的subdirs,所以削减是剥离前面的path。 确保你testing你的返回path,以确保你刚刚获得队列名称
  • postsuper -d – 告诉postsuper删除从stdin获得的消息。

希望这有助于那些find这个,并正在寻找更具体的指示的人。

只是一个替代的命令来做同样的build议由gview:

 find /var/spool/postfix/deferred/ -exec grep -l 'Subject: this was the subject line' {} \; | xargs -r -n1 basename | xargs -r -n1 postsuper -d 
  • find + grep -l:在给定主题的文件系统上查找延期电子邮件
  • xargs + basename:从邮件文件的path中检索消息ID
  • xargs + postsuper:使用检索到的消息ID来提供postsuper -d并从队列中删除邮件