vin*_*t.m 7 email-server postfix queue
有时,邮件会卡在我的 postfix 队列中,远处的服务器会说“连接太多,速度变慢”。我已经将特定域的 postfix 配置为每秒仅发送一封邮件,但有时似乎不够。
我知道postqueue -f
,但它同时发送所有邮件,并且邮件以相同的状态保持在队列中。
我想一次刷新一封邮件的后缀队列,假设每秒一封邮件(或 2 封或更多)。
可以刷新一封特定的电子邮件,而不是整个队列。如果您依次为每条消息执行此操作,并且消息之间有两秒钟的睡眠时间,那应该可以满足您的要求。
首先,您需要找到队列中邮件的队列 ID。您可以通过使用命令来获得它postqueue -p
。这是一个示例输出:
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
6777D6E1E 3517 Mon Jan 25 03:03:02 sender@example.se
recipient@example.com
69F6471CA 2820 Tue Jan 26 03:24:17 sender@example.se
recipient@example.net
Run Code Online (Sandbox Code Playgroud)
您需要的是第一列。您可以通过 grep 和 cut 的一些管道获取所有 ID,如下所示:
[jenny@sameen ~]$ postqueue -p | grep -v ^- | grep -v "(" | cut -d' ' -f1 |grep -e [[:alnum:]]
6777D6E1E
69F6471CA
Run Code Online (Sandbox Code Playgroud)
现在您知道如何获取 ID,您可以将它们放入 bash 循环并稍作睡眠:
[jenny@sameen ~]$ for ID in `postqueue -p | grep -v ^- | grep -v "(" | cut -d' ' -f1 |grep -e [[:alnum:]] `; do postqueue -i $ID; sleep 2; done
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10078 次 |
最近记录: |