我一直花着一个小时的时间试图弄清楚如何从 exim 邮件队列中删除来自某个邮件地址的所有邮件,因为该队列中充满了垃圾邮件。
答案1
删除来自的所有消息[电子邮件保护]。您可以将 -v 添加到 exim 命令以获得更详细的输出。
exiqgrep -i -f [email protected] | xargs exim -Mrm
你可以用稍微不同的方式来做,为每个项目生成一个退回邮件。这向最终用户强调了他们的邮箱被入侵造成了多大的危害:
exiqgrep -i -f [email protected] | xargs exim -Mg
答案2
使用此行删除所有消息:
exim -bp | grep [email protected] | sed -r 's/(.{10})(.{16}).*/\2/' | xargs exim -Mrm
它执行以下操作:
exim -bp
列出 exim 邮件队列
grep [email protected]
仅选择具有特定邮件地址的行
sed -r 's/(.{10})(.{16}).*/\2/'
选择电子邮件的 ID
xargs exim -Mrm
从队列中删除消息
我确信它可以被优化,请告诉我是否可以优化以及如何优化!
答案3
清除 exim 队列的另一种方法是打印第三个字段,在本例中是电子邮件电子邮件地址。任何与 grep 电子邮件地址匹配的结果都将被 exim -Mrm 命令删除。
exim -bp | grep [email protected] | awk {'print $3'} | xargs exim -Mrm
如果你想清除冻结的电子邮件,你可以替换[电子邮件保护]带有“冻结”