[root@mail ~]# mailq 查看隊列郵件
postsuper -d ALL 這樣就刪除所有郵件啦
[注意:大小寫有區(qū)別,請注意大小寫!]
網上看到,Postfix 郵件隊列管理的幾個 Perl 小程序,pfdel.pl 是用來刪除隊列中指定用戶的郵件的,luserdel.pl 是用來刪除隊列中無效用戶的郵件的,moqdel.pl 是用來刪除隊列中郵箱配額已滿的用戶的郵件的,jmoqdel.pl 是刪除郵箱配額已滿的用戶的垃圾郵件箱的。我裝的是EMOS1.3,找不到這幾個小程序。
用外面的郵件服務器發(fā)點EDM,一直有問題,成功太少,干脆用自己的郵件服務器發(fā)送,誰知道3W多封郵件是發(fā)出去了,全部堵在我們自己的服務器上,郵件服務器給堵死了
只好刪除隊列中的垃圾郵件了,網上說是 mailq | tail +2 | awk ‘BEGIN { RS = “” } / chen@example\.org$/ { print $1 }’ | tr -d ‘*!’ | postsuper -d
參考官網寫個腳本也不行,應該多研究下還可以的,腳本如下:
Q: 刪除郵件隊列
A: mailq | tail +2 | awk ‘BEGIN { RS = “” } / chen@example\.org$/ { print $1 }’ | tr -d ‘*!’
| postsuper -d -
[root@linuxas3 root]# vi mailqueue
#!/bin/bash
# netkiller@9812.net
queue=$1
# echo ${queue}
DELETE=”mailq | tail +2 | awk ’BEGIN { RS = \”\” } /${queue}$/ { print \$1 }’ | tr -d ‘*!’
| postsuper -d -”
echo ${DELETE} > queue
chmod 755 queue
./queue
[root@linuxas3 root]# chmod 755 mailqueue
[root@linuxas3 root]# ./mailqueue chen@example\\.org
mailq | tail +2 | awk ‘BEGIN { RS = “” } /chen@example\.org$/ { print $1 }’ | tr -d ‘*!’ |
由于郵件中有一些正常郵件,所以只能刪除特定字符的垃圾郵件,通過mailq顯示出來郵件隊列:2AB97F815E* 2749 Thu Feb 5 15:48:38 web1@shequsz.com
szmaxoni@public.szptt.net.cn 刪除郵件只需要命令postsuper -d 2AB97F815E即可。應該通過管道可以簡單實現(xiàn),但是我對使用管道不熟悉,只好多走兩步了……
[root@mail ~]# mailq |grep shequsz\.com >>/home/maillist 到出包含shequsz.com的垃圾郵件到maillist
[root@mail home]# awk ‘{print $1}’ maillist >>/home/mywang/dellist 把郵件ID導出來,查看下如果帶*,需要編輯替換下
[root@mail mywang]# cat delmail.sh 編輯一個腳本,把文件里面ID逐個匹配然后刪除郵件
for i in `cat dellist`;
do postsuper -d $i;
done
[root@mail mywang]# sh delmail.sh
postfix有四種不同的郵件隊列,并且由隊列管理進程統(tǒng)一進行管理:
1. maildrop:本地郵件放置在maildrop中,同時也被拷貝到incoming中。
2. incoming:放置正在到達或隊列管理進程尚未發(fā)現(xiàn)的郵件。
3. active:放置隊列管理進程已經打開了并正準備投遞的郵件,該隊列有長度的限制。
4. deferred:放置不能被投遞的郵件。
postfix日常維護
啟動postfix postfix start
停止postfix postfix stop
重新讀取postfix配置文件 postfix reload
立即投遞隊列中所有郵件(慎用) postfix flush
查看隊列郵件 postqueue -p 或 mailqpostqueue -p |tail
使用postsuper 來維護隊列。一般是先用mailq查看隊列里的郵件,找到對應的id,然后用postsuper -d來刪除。例如id是0EAF3A9B 那么postsuper -d 0EAF3A9B
Q: 刪除郵件隊列
A: mailq | tail +2 | awk ‘BEGIN { RS = “” } / chen@example\.org$/ { print $1 }’ | tr -d ‘*!’ | postsuper -d
詳細要看mailq和postsuper的用法
修復隊列以及任何權限錯誤
postfix check
查看郵件系統(tǒng)日志
tail -f /var/log/maillog