Postfix 学习系列 (一) 队列管理

来源:互联网 发布:库存管理优化 编辑:程序博客网 时间:2024/04/27 23:41

Postfix的队列管理的damon程序是qmgr, 是整个postfix的运行核心。

它会等待邮件的到达, 并用内容的处理流程来分发邮件。  实际的路由策略是由trivial-rewrite来完成的。

qmgr damon是由master进程来运行的。

邮件队列:


postfix以queue_minfree参数来保护队列文件系统, 默认是0,表示qmgr可以无限制的使用磁盘空间。 建议设定一个合理的上限值。

每当有新邮件进来的时候, qmgr会将邮件移到到active队列,并调用适当的mda来处理, 当投递过程没有意外,流程相当的迅速。

暂时没有办法发出的邮件 会被放在defer队列中, 这些邮件会等到它们被成功的投递出去,或因为超时而被bounce回去.

max_queue_lifetime 决定了,延迟时间的上限, 默认是5天, 如果想在第一次递送失败后,就立即退信, 将其设为0.

而postfix 内部的队列扫描间隔是1000秒。



postfix用来 投递的MDA都列在master.cf中, maxproc字段限定了mDAr 进程上限。 

postfix 使用特殊的投递算法, 如果有多封信要到同一个目的地, MDA一开始的时间只发送initial_destination_concurrency邮件(默认是5),如果能成功,再慢慢往上加,直到目的系统不能再承担当前的工作负荷或者同时投递的邮件数到达default_destination_concurrency_limit(20)

  每个MDA都有自己的mda_destination_concurrency_limit,效力高于default_destination_concurrency_limit



postfix提供了一组命令和工作来管理 队列

1. 显示队列:

postqueue -p

  

2. 删除邮件

postsuper -d [Queue ID]

3. 保留邮件

postsuper -h [Queue ID]
将邮件放入hold队列中

postsuper -H [Queue ID] 将邮件移回到队列中

4. 重新排队

postsuper -r [Queue ID|ALL]

5. 显示邮件内容

postcat -q [Queue ID]

6. 清空邮件(最好不要用,除非有把握邮件一定可以顺利的到达)

postqueue -f