一次邮件队列引起的逗比经历!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一次邮件队列引起的逗比经历!相关的知识,希望对你有一定的参考价值。


一个朋友的邮件系统不停的发邮件,自己留个记录。

技术分享

技术分享

大概意思就是不停的发邮件。。。

排查

查看日志,成M级别的涨。

top查看进程,有一个管理队列的进程qmgr占用资源很多,于是根据猜测,可能是队列太多的原因。


postfix删除队列中的邮件

Postfix中有一套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) 管理

正常了。具体什么原因导致的问题,还要继续排查。

本文出自 “任志远@IT分享” 博客,请务必保留此出处http://renzhiyuan.blog.51cto.com/10433137/1794639

以上是关于一次邮件队列引起的逗比经历!的主要内容,如果未能解决你的问题,请参考以下文章

microPython 的逗比报错的问题

用express进行项目搭建中遇到的逗比问题

一次 HashSet 所引起的并发问题

记一次Redis错误排查经历(redis cluster 节点重启后无限同步问题)

记一次Redis错误排查经历(redis cluster 节点重启后无限同步问题)

Laravel 邮件队列无限循环异常