如何从特定用户/电子邮件的exim邮件队列中删除所有消息

Tim*_*aas 6 bash spam exim

在队列充满垃圾邮件之后,我花了最后一个小时试图弄清楚如何从 exim 邮件队列中删除来自某个邮件地址的所有邮件。

Tim*_*aas 6

使用此行删除所有消息:

exim -bp | grep email@address.com | sed -r 's/(.{10})(.{16}).*/\2/' | xargs exim -Mrm
Run Code Online (Sandbox Code Playgroud)

它执行以下操作:

exim -bp
Run Code Online (Sandbox Code Playgroud)

列出 exim 邮件队列

grep email@address.com
Run Code Online (Sandbox Code Playgroud)

仅选择具有特定邮件地址的行

sed -r 's/(.{10})(.{16}).*/\2/'
Run Code Online (Sandbox Code Playgroud)

选择电子邮件的 ID

xargs exim -Mrm
Run Code Online (Sandbox Code Playgroud)

从队列中删除消息

我确定它可以优化,请告诉是否可以优化以及如何优化!


Tod*_*ons 4

删除来自 sender@example.com 的所有邮件。您可以将 -v 添加到 exim 命令以获得更详细的输出。

exiqgrep -i -f sender@example.com | xargs exim -Mrm
Run Code Online (Sandbox Code Playgroud)

您可以采用稍微不同的方式来为每个项目生成退回消息。这向最终用户强调了他们的受感染邮箱造成了多大的伤害:

exiqgrep -i -f sender@example.com | xargs exim -Mg
Run Code Online (Sandbox Code Playgroud)

  • 这些对我有用: `exiqgrep -i -f sender@example.com | xargs exim -Mrm` 和 `exiqgrep -i -f sender@example.com | xargs exim -Mg` (2认同)