Linux
如何刪除發送到特定域的 Postfix 隊列消息
我有一個具有多個域的伺服器。如何清除特定域的所有 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 -