如果你要套用其中一筆 Queue 中的郵件,可以先用 mailq 或 postqueue 指令查詢出或篩選出你要重新排 Queue 的郵件 ID,並使用以下指令重新排 Queue:
#postsuper -r 7B8CE830BD

若要套用「所有」郵件,可以使用特殊的 ALL 關鍵字:
#postsuper -r ALL

最後再強制重送所有的信件
#postqueue -f

檢視剩下多少Queue
#postqueue -p

查看mailqu吽建的完整信件內容
#postcat -q 14F9C73C06F

若還是不行的話... 那就考慮刪除掉吧XD

# 列出目前在 Mail Queue 中的信件
mailq

# 刪除某一個佇列的郵件
postsuper -d queue_id

# 刪除所有在 Queue 中的郵件
postsuper -d ALL

# 刪除所有正在 deferred 佇列中的郵件 ( 刪除曾經發送失敗的信 )
postsuper -d ALL deferred

# 刪除所有正在 deferred 佇列中的郵件 ( 可看出哪些信被刪除了 )
find /var/spool/postfix/deferred -type f -exec rm -vf \{\} \;

# 刪掉「三天以前」無法發出的郵件
find /var/spool/postfix/deferred -type f -mtime +3 -exec rm -f \{\} \;

# 列出目前所有無法發出的郵件
find /var/spool/postfix/deferred -type f -exec ls -l --time-style=+%Y-%m-%d_%H:%M:%S {} \;

# 刪除超過 5 天的 "defer" 佇列中的退信紀錄
find /var/spool/postfix/defer -type f -mtime +5 -exec rm -f \{\} \;

若你發現在MailQ裡面有相同的地址大量寄送垃圾信件時,可以透過下面的方式來擋掉...

# vi /etc/postfix/header_checks
# 加入要擋掉的來原信
/^From:.service\@kcg\.gov\.tw/ DISCARD Attack Mail

# postmap -q - regexp:/etc/postfix/header_checks < /etc/postfix/header_checks
# 重新讓 Postfix 新 header_checks 生效

# mailq | grep "[email protected]" | cut -d " " -f1 | cut -d'*' -f1 | postsuper -d -
# 刪掉所有來自[email protected]的MailQ

此內容轉貼自: Mail Attack & Delete Postfix selected mailq

預設所有跟 Postfix 相關的郵件都會放在 /var/spool/postfix/ 目錄下,
想瞭解 Postfix 是如何管理 Mail Queue 的可以參考 qmgr - Postfix queue manager 的手冊。

以下是每個目錄摘要的說明其用途:

MAIL QUEUES

*
incoming

從網路寄信進來本機的信。
或從本地寄送到本地的信。
*
active

正在準備發送的郵件。
*
defered

無法傳送的信。會持續重試。
*
corrupt

無法讀取或毀損的信。
*
hold

被暫停發送的信。需要手動開啟才會發出。

DELIVERY STATUS REPORTS

*
bounce

每一位收件者的寄送狀態資訊,說明為什麼被「退信」。
由 bounce(8) 程式控管
*
defer

每一位收件者的寄送狀態資訊,說明為什麼被「延遲寄信」。
由 defer(8) 程式控管
*
trace

每一位收件者的寄送狀態資訊,說明被 Postfix 用 "sendmail -v" 或 "sendmail -bv" 指令執行過的狀態。
由 trace(8) 程式控管

點閱: 184

By tony

自由軟體愛好者~喜歡不斷的思考各種問題,有新的事物都會想去學習嘗試 做實驗並熱衷研究 沒有所謂頂天的技術 只有謙虛及不斷的學習 精進專業,本站主要以分享系統及網路相關知識、資源而建立。 Github http://stnet253.github.io

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料