介紹 Postfix 伺服器郵件佇列常用的管理指令,包含查閱、立即嘗試遞送、刪除佇列中的郵件等。
如果要檢查目前存在於 Postfix 郵件佇列中的郵件(例如 deferred 與 pending 的郵件),可以使用 postqueue
指令加上 -p
參數:
# 查看 Postgix 郵件佇列 postqueue -p
另外亦可使用 mailq
指令,兩者作用完全相同:
# 查看 Postgix 郵件佇列(相容 Sendmail 介面指令)
mailq
如果希望 Postfix 伺服器可以馬上嘗試傳送所有尚未遞送出去的郵件,可以執行 postqueue
加上 -f
參數:
# 立即嘗試遞送所有郵件 postqueue -f
如果只需要嘗試遞送指定的郵件,可以使用 -i
參數並指定郵件 ID:
# 立即嘗試遞送指定郵件 postqueue -i MAIL_ID
若需要查看郵件佇列中指令郵件的內容,可以使用 postcat
指令,並以 -q
參數指定郵件 ID:
# 查看特定郵件 postcat -q MAIL_ID
其中 MAIL_ID
要替換為郵件的 ID。
如果希望一次刪除目前郵件佇列中所有的郵件,可以使用 postsuper
指令:
# 刪除所有佇列中的郵件 postsuper -d ALL
亦可刪除指定郵件佇列中的所有郵件:
# 刪除 deferred 佇列中所有的郵件 postsuper -d ALL deferred
在一般的正式伺服器中,通常不會這樣刪除所有的郵件,所以若要使用此指令,請再三確認。
若要刪除所有從特定信箱寄出的郵件,可以參考以下指令稿:
# 刪除所有從 test@test.com 寄出的郵件 mailq | tail +2 | \ awk 'BEGIN { RS = "" } / test@test\.com$/ { print $1 }' | \ tr -d '*!' | postsuper -d -
參考資料:WIREHIVE、EasyEngine、Linux Hint