postfix删除队列邮件

[root@mail ~]# mailq 查看队列邮件

postsuper -d ALL  这样就删除所有邮件啦

[注意:大小写有区别,请注意大小写!]

网上看到,Postfix 邮件队列管理的几个 Perl 小程序,pfdel.pl 是用来删除队列中指定用户的邮件的,luserdel.pl 是用来删除队列中无效用户的邮件的,moqdel.pl 是用来删除队列中邮箱配额已满的用户的邮件的,jmoqdel.pl 是删除邮箱配额已满的用户的垃圾邮件箱的。我装的是EMOS1.3,找不到这几个小程序。

用外面的邮件服务器发点EDM,一直有问题,成功太少,干脆用自己的邮件服务器发送,谁知道3W多封邮件是发出去了,全部堵在我们自己的服务器上,邮件服务器给堵死了只好删除队列中的垃圾邮件了,网上说是 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

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 [email protected]

[email protected]   删除邮件只需要命令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

Postfix邮件队例队列管理工具:

postqueue -p 列出队列里的所有邮件
postsuper -d ID 删除一封邮件
postsuper -d ALL 删除所有邮件
postsuper –h ID 保留邮件
postsuper -r ALL 重新排例
postcat -q ID  显示邮件内容
postqueue -f  清空邮件

 

本文出自 “让我men共同成长” 博客,谢绝转载!

你可能感兴趣的:(删除积压邮件)