zimbra 的 postfix 队列管理

将所有要发送的邮件按发件人排序:

[[email protected] wuxiaoyu]# cat /opt/zimbra/work/mailqbysender

#!/bin/bash

mailq | grep ‘^[A-Z0-9]‘ | awk ‘{print $7}‘ | sort | uniq -c | sort -n

[[email protected] wuxiaoyu]#

统计发件人排序的top4

[[email protected] wuxiaoyu]# cat /home/sankuai/wuxiaoyu/mail.sh

#!/bin/bash

sudo -u zimbra -i work/mailqbysender | tail -n4

m=$(sudo -u zimbra -i work/mailqbysender | tail -n1)

n=$(echo $m | awk ‘{print $2}‘)

echo $n

sudo -u zimbra -i mailq | grep $n | cut -c -12 > /tmp/_mailq.txt

[[email protected] wuxiaoyu]#

删除top4中最多的发件人所发的邮件

[[email protected] wuxiaoyu]# cat /home/sankuai/wuxiaoyu/p.sh

#!/bin/bash

cat /tmp/_mailq.txt | /opt/zimbra/postfix/sbin/postsuper -d -

[[email protected] wuxiaoyu]#

zimbra中的postfix

暂缓发送队列中的问题邮件

[[email protected] incoming]# /opt/zimbra/libexec/zmqstat

hold=0

corrupt=0

deferred=96

active=6

incoming=0

[[email protected] incoming]# which postsuper

/usr/sbin/postsuper

[[email protected] incoming]# /opt/zimbra/postfix/sbin/postsuper  -h ALL deferred

postsuper: Placed on hold: 96 messages

[[email protected] incoming]# /opt/zimbra/libexec/zmqstat

hold=96

corrupt=0

deferred=0

active=4

incoming=0

[[email protected] incoming]#

解除暂缓发送

[[email protected] incoming]# /opt/zimbra/postfix/sbin/postsuper  -H  ALL

postsuper: Released from hold: 96 messages

[[email protected] incoming]# /opt/zimbra/libexec/zmqstat

hold=0

corrupt=0

deferred=96

active=11

incoming=0

[[email protected] incoming]#

postfix相关知识补充:

ostfix中有一套Mail Queue Management机制,所有队列中的邮件都可以全自动的处理,但在发送大量邮件的时候,有必要对这个队列进行手工的维护处理,比如说,删除队列中的邮件. 以下是一些常用的命令:

列出目前在 Mail Queue 中的邮件

mailq

刪除所有在 Queue 中的邮件

postsuper -d ALL

刪除所有正在 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 相关的邮件都会放在/var/spool/postfix/ 目录下,想了解Postfix是如何管理队列的,可以参考 qmgr -Postfix queue manager 的手册.
以下是每个目录的用途

MAIL QUEUES

* incoming 收信箱

* active 正在准备发送的邮件

* defered 无法发送的邮件,等待重发

* corrupt 无法读取或者损坏的邮件

* hold 暂停的邮件,需要手工启动 DELIVERY STATUS REPORTS

* bounce 每一位收件者的送信状态,记录为什么退信由 bounce(8) 管理

* defer 每一位收件者的寄送状态,说明为什么延迟由 defer(8) 管理

* trace 每一位收件者的寄送状态信息,说明被 Postfix 用 “sendmail -v” 或 “sendmail -bv” 命令执行的状态由 trace(8) 管理

1. try and deliver the mail from the queue(强制发送队列中的邮件):

$ postfix flush or $ postqueue -f

2. check mail queue size (查看队列大小):

$ mailq | wc -l

3. list mails in queue (查看队列中的邮件):

$ postqueue -p or $ mailq

4.put all deferred mail “on hold” so that no attempt is made to deliver it(暂缓发送队列中的问题邮件):

$

5. release mail that was put “on hold”(解除暂缓发送):

$

6. purge all deferred emails from the queue without delivering (删除队列中问题的邮件):

$ postsuper -d ALL deferred $ find /var/spool/postfix/deferred -type f -exec rm -vf {} \;

7. purge specific email from the queue by specifying its message ID (按邮件ID删除队列中的邮件):

$ postsuper -d 0C0FF240F2

8. 删除已经三天未发出的邮件

$ find /var/spool/postfix/deferred -type f -mtime +3 -exec rm -f {} \;

9. 列出所有问题邮件

$ find /var/spool/postfix/deferred -type f \ -exec ls -l --time-style=+%Y-%m-%d_%H:%M:%S {} \;

10. 删除超过5天的问题邮件的退信记录

$ find /var/spool/postfix/defer -type f -mtime +5 -exec rm -f {} \;

11. 复杂用法:利用grep得到特定的邮件ID,再删除,如:

$ mailq | grep -B 1 "[email protected]" | cut -f 1 -d ! > deletionIDs" $ cat deletionIDs | postsuper -d -
时间: 2024-08-20 04:06:44

zimbra 的 postfix 队列管理的相关文章

postfix 队列管理

队列管理中真正的main函数式 trigger_server_main(argc, argv, qmgr_trigger_event, CA_MAIL_SERVER_INT_TABLE(int_table), CA_MAIL_SERVER_STR_TABLE(str_table), CA_MAIL_SERVER_BOOL_TABLE(bool_table), CA_MAIL_SERVER_TIME_TABLE(time_table), CA_MAIL_SERVER_PRE_INIT(qmgr_p

postfix队列管理

队列管理单元的服务器程序--qmgr,是整个postfix系统的中心枢纽.所有邮件,包括等待送出与从外界收进来的,都必须通过队列.了解队列的运行原理以及postfix如何处理队列,有助于你解决问题.  队列管理器总共设置了五个做不同用途的队列,包括:输入.活动.等待.故障.保留.每个队列在queue_directory参数指定的路径下各有一个专属的子目录.默认的队列目录是/var/spool/postfix/.  于后台运作的qmgr daemon能自动处理大部分的队列管理工作,必要时,管理员可

Postfix常用命令和邮件队列管理(queue)

本文主要介绍一下postfix的常用命令及邮件队列的管理: Postfix有以下四种邮件队列,均由管理队列的进程统一进行管理: maildrop:本地邮件放置在maildrop中,同时也被拷贝到incoming中. incoming:放置正在到达队列或管理进程尚未发现的邮件. active:放置队列管理进程已经打开了并正准备投递的邮件,该队列有长度的限制. deferred:放置不能被投递的邮件.可能是推迟发送的邮件 启动postfix /usr/sbin/postfix start 停止pos

postqueue队列管理

postqueue队列管理: [[email protected] app]# cd /usr/local/kk-mail/service/postfix/sbin [[email protected] sbin]# postqueue -p | wc -l   #查看队列邮件和数量 [[email protected] sbin]# postcat -q Queue_ID   #查看某封邮件 [[email protected] sbin]# postsuper -d Queue_ID  #删

MQ队列管理器搭建(一)

多应用单MQ使用场景 如上图所示,MQ独立安装,或者与其中一个应用同处一机.Application1与Application2要进行通信,但因为跨系统,所以引入中间件来实现需求. Application1需要连接MQ,并将消息放入队列Queue中,Application2同样连接MQ,监听在Queue队列上,一旦发现有消息进入则取出该消息进行处理. 下面将给出创建队列管理器和队列的示例: 定义队列管理器名称为Qm1,本地队列名称为Queue,服务器连接通道CHAN_SERVER_CON,监听端口

MQ队列管理器搭建(三)

MQ集群及网关队列管理器的搭建 描述: 如上图所示,为MQ的集群搭建部署图.CLUSTERA.CLUSTERB分别是两个集群,其中Qm1-Qm3.GateWayA为CLUSTERA集群中的队列管理器:Qm1-Qm3.GateWayB是CLUSTERB集群中的队列管理器.GateWayA与GateWayB负责网络路由和消息分发,使用集群的方式可以达到负载均衡的目的,除此之外还能提高MQ使用的稳定性.同一个集群中除网关队列管理器外的任意队列管理器因故关闭或停止工作后,其他的队列管理器可以接管它的工作

MQ队列管理器搭建(二)

MQ级联方式使用场景 使用场景: 如上图所示,Application1与Application2要进行通信或者消息互换,使用MQ中间件作为中介.上图中,Application1与Application2通信不进行直接连接,而是通过与MQ通信从而实现二者的通信.图中两个MQ的信息如上描述.其中RemoteQueue为远程队列,该队列指定了目标端对应的队列为Queue,并且该远程队列指定了传输所使用的传输队列尾TransQueue:而此传输队列TransQueue与发送通道CHAN_QMGR1_TO

Unity 动画(UITweener)、协程(Coroutine)和委托(Delegate)队列管理

问题         前段时间,项目中要做奖励界面UI缓动动画要一个接着一个播放,如:先播放达成星星动画,在播放经验数字增加动画,最后播放奖励物品动画. 当然最笨最直接的方法可以类似成语接龙那样,把下个动画的开始播放都写在上一个动画播放完毕委托中.一般直接的方法是实现起来非常之简单,但这里却不是,会看见代码中有一系列播放完毕回调函数(除了最后一个),显然维护起来是否费劲. 把上面的方法进行简化,把回调函数变为一个:维护一个动画的 List 和当前播放动画的索引 index ,然后再回调函数中只需

MQ队列管理

分享一段代码,很实用. 下面这段java代码是我在国外一个论坛上发现的,源地址已经忘了.代码的作用是可以删除正在使用的mq的队列消息,管理mq的人一定知道它的美妙了吧,哈哈. 我拿来改了下,增加了2个参数支持:ccsid和channel.上代码: 1 import java.util.Hashtable; 2 import com.ibm.mq.*; 3 4 /** 5 * A simply Java class to destructively read (delete) all messag