Linux

如何刪除發送到特定域的 Postfix 隊列消息

  • April 18, 2021

我有一個具有多個域的伺服器。如何清除特定域的所有 Postfix 隊列消息?

2021 年 4 月 18 日更新:

mailq | tail -n +2 | grep -v '^ *(' | awk  'BEGIN { RS = "" } { if ($8 ~ /@example\.com/ && $9 == "") print $1 }' | tr -d '*!' | postsuper -d -

$7=發件人,$8=收件人1,$9=收件人2。您還可以根據$9需要調整其他收件人 ( ) 的規則。

該命令基於postsuper 手冊頁的範例,該範例命令匹配完整的收件人郵件地址:

mailq | tail -n +2 | grep -v '^ *(' | awk  'BEGIN { RS = "" } { if ($8 == "user@example.com" && $9 == "") print $1 }' | tr -d '*!' | postsuper -d -

舊內容:

此命令刪除所有發自或發往以 : 結尾的地址的郵件@example.com

sudo mailq | tail -n +2 | awk 'BEGIN { RS = "" } /@example\.com$/ { print $1 }' | tr -d '*!' | sudo postsuper -d - 

引用自:https://serverfault.com/questions/638152