話說…
我有個天真的同事,將ERP所有產業的Mail Dump出來,然後請業助發送mail,然後業助也就按照指示發送…
結果….整個Server就當了….正確來說應該是網路癱瘓了
我只能說有被搞到,發了一個晚上還沒發完,大概七千多封,結果更誇張的是早上又發了一千多封…..
我已經被N個同事問說是不是Server掛了…
最後只好使出必殺技..把信都刪了….
剛好來做個備忘錄:
PostFix Mail Queue相關名稱:
incoming=寄進來的信。
active=正準備發送的信。
defered=無法傳送的信。會持續重試。
corrupt=無法讀取或毀損的信。
hold=被暫停發送的信。需要手動開啟才會發出。
PostFix Delivery Status Reports
bounce=每一位收件者的寄送狀態資訊,說明為什麼被「退信」。
由 bounce(8) 程式控管
defer=每一位收件者的寄送狀態資訊,說明為什麼被「延遲寄信」。
由 defer(8) 程式控管
trace=每一位收件者的寄送狀態資訊,說明被 Postfix 用 “sendmail -v” 或 “sendmail -bv” 指令執行過的狀態。
由 trace(8) 程式控管
PostFix之postqueue指令
看被Queue的信:
postqueue -q (我都是用這個)
or
mailq
強迫將Queue信寄出:
postqueue -f
刪除所有被Queue的信:
postsuper -d ALL
刪除某封Queue的信:
先用postqueue -q or
mailq
查queue_id
postsuper -d queue_id
刪除所有正在 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 {} ;
附帶一提:
如何讓PostFix支援MailDir格式:
在main.cf中設置:
home_mailbox = Maildir/
任何相對路徑末尾加上「/」號都表示打開了maildir支持,home_mailbox設置的值將會追加到使用者的home目錄,也就是如果你指定home_mailbox = mymail/,那麼postfix也認為打開了maildir支持,並把信件投遞到使用者home目錄下的mymail目錄中。