清除Qmail列队邮件

运维 系统运维
Qmail有其令人称道的优点,但是不可否认的是,由于Qmail没有控制接收邮件,于是很容易造成队列的拥堵。如何清除Qmail列队中的邮件呢?本文主要通过命令的方式解释了删除列队的几个问题。

  Qmail有其令人称道的优点,但是不可否认的是,由于Qmail没有控制接收邮件,于是很容易造成队列的拥堵。如何清除Qmail列队中的邮件呢?本文主要通过命令的方式解释了删除列队的几个问题。

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

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

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

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

  用外面的邮件服务器发点EDM,一直有问题,成功太少,干脆用自己的邮件服务器发送,谁知道3W多封邮件是发出去了,全部堵在我们自己的服务器上,邮件服务器给堵死了

Qmail/列队邮件/清楚

只好删除队列中的垃圾邮件了,网上说是 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

 

【编辑推荐】

  1. Qmai的配置
  2. 清除Qmail的邮件队列软件
  3. Qmail的使用技巧
  4. Sendmail Qmail Postfix 大比拼
  5. Qmail下的控制文件
  6. Linux下的邮件服务器 Qmail

 

责任编辑:zhaolei 来源: 网络转载
相关推荐

2011-01-19 15:33:07

Qmail邮件队列清除

2011-02-21 16:04:40

Qmail

2011-02-21 15:47:18

2011-02-21 15:17:45

Qmail

2011-01-19 15:21:32

Qmail垃圾邮件

2011-02-21 13:40:17

2009-08-12 17:56:53

2011-01-18 15:54:32

2009-02-10 16:09:00

邮件服务器LinuxQmail

2011-02-21 14:31:04

Qmail

2011-01-19 15:40:25

Qmail安全

2011-01-21 18:08:22

Qmail

2011-02-21 14:44:03

2011-01-19 14:31:15

Qmail安装设定

2011-01-19 14:20:53

Qmail安装

2011-01-19 14:39:59

Qmail技巧

2010-09-17 13:54:47

2011-02-21 16:14:38

Qmail

2011-01-19 15:03:24

Qmail控制文件

2011-01-19 15:52:18

Qmail错误代码
点赞
收藏

51CTO技术栈公众号