有时,邮件停留在我的postfix队列中,远处的服务器说“连接太慢,速度慢”。 我已经为特定域configuration了我的后缀,每秒只发送一个邮件,但有时似乎不够。
我知道postqueue -f ,但它同时发送所有邮件,邮件保持同一状态的队列。
我想每次刷新一个邮件的队列,让我们说每一个邮件(或2,或更多)。
可以刷新一个特定的电子邮件,而不是整个队列。 如果你依次为每个消息做这个,在两个消息之间rest两秒钟,那应该做你所要求的。
首先,您需要在队列中find邮件的队列ID。 你可以使用postqueue -p命令来得到这个结果。 以下是一个输出示例:
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- 6777D6E1E 3517 Mon Jan 25 03:03:02 [email protected] [email protected] 69F6471CA 2820 Tue Jan 26 03:24:17 [email protected] [email protected]
你需要的是在第一栏。 你可以通过一些pipe道通过grep和剪切来获得所有的ID,如下所示:
[jenny@sameen ~]$ postqueue -p | grep -v ^- | grep -v "(" | cut -d' ' -f1 |grep -e [[:alnum:]] 6777D6E1E 69F6471CA
现在你知道如何得到这些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