分享java帶來的快樂

          我喜歡java新東西

          postfix 郵件維護

          postfix 如何刪除隊列中的郵件

          # postfix 如何刪除隊列中的郵件

          linux @ 06 二月 2009,

          [root@mail ~]# mailq 查看隊列郵件

          postsuper -d ALL 這樣就刪除所有郵件啦

          [注意:大小寫有區別,請注意大小寫!]

          網上看到,Postfix 郵件隊列管理的幾個 Perl 小程序,pfdel.pl 是用來刪除隊列中指定用戶的郵件的,luserdel.pl 是用來刪除隊列中無效用戶的郵件的,moqdel.pl 是用來刪除隊列中郵箱配額已滿的用戶的郵件的,jmoqdel.pl 是刪除郵箱配額已滿的用戶的垃圾郵件箱的。我裝的是EMOS1.3,找不到這幾個小程序。

          用外面的郵件服務器發點EDM,一直有問題,成功太少,干脆用自己的郵件服務器發送,誰知道3W多封郵件是發出去了,全部堵在我們自己的服務器上,郵件服務器給堵死了spool只好刪除隊列中的垃圾郵件了,網上說是 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即可。應該通過管道可以簡單實現,但是我對使用管道不熟悉,只好多走兩步了……

          [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有四種不同的郵件隊列,并且由隊列管理進程統一進行管理:


            1. maildrop:本地郵件放置在maildrop中,同時也被拷貝到incoming中。

            2. incoming:放置正在到達或隊列管理進程尚未發現的郵件。

            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

          查看郵件系統日志

          tail -f /var/log/maillog

          posted on 2012-04-29 18:38 強強 閱讀(540) 評論(0)  編輯  收藏 所屬分類: linux 操作系統配置sendmail

          主站蜘蛛池模板: 曲松县| 林西县| 霍山县| 罗定市| 塘沽区| 百色市| 镇坪县| 克什克腾旗| 泾川县| 商洛市| 长阳| 玛纳斯县| 湖口县| 宁城县| 永嘉县| 盖州市| 农安县| 石泉县| 东兴市| 黄浦区| 常州市| 宜君县| 临湘市| 泰州市| 大兴区| 宁乡县| 闽侯县| 青铜峡市| 安阳县| 呼和浩特市| 交口县| 安吉县| 蒙山县| 同心县| 登封市| 德昌县| 洱源县| 区。| 深水埗区| 稻城县| 渝中区|