排查邮件队列是谁在发送大量邮件:
如何查看当前有多少邮件队列正在等待发送的总数:

exim -bpc

查看邮件队列的详细情况(列出所有正在等待发送的队列中每一条邮件ID):

exim -bp

汇总队列邮件信息

exim -bp | exiqsumm

cPanel官方给的查看邮件队列数量的命令:

grep -oP '(?<= cwd=)/home?/\S+' /var/log/exim_mainlog | sort | uniq -c | sort -rn

查看邮件队列的发送用户并按照发送量来排序

grep -oP "A=\K([A-Za-z0-9_.:]+)" /var/log/exim_mainlog | sort | uniq -c | sort -nr

我在这里做的是找到A=,其中包含用户名以及如何从/var/log/exim_mainlog进行身份验证,然后我将其管道传输到,sort并将uniq -c它们聚合为一个组并为您提供一个数字。最后一个sort-nr只是反向给出了一个有序组中的计数(最大数量为第一个)。
如果您有不同类型的身份验证,让我们说dovecot_plain和dovecot_login,但使用相同的用户名,那么最简单的方法是放入另一个只获得“:”之后的grep,如下所示:

grep -oP "A=\K([A-Za-z0-9_.:]+)" /var/log/exim_mainlog | grep -oP ":\K(.*)" | sort | uniq -c | sort -nr

查看哪些PHP脚本在发信:

exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mvb " $3}' | bash |grep /home|awk {'print $4'}

如何进一步查看邮件ID的信息:

exim -Mvb messageID
exim -Mvh messageID
exigrep exceeded /var/log/exim_mainlog | grep 600

清空邮件队列的方法:https://www.crybit.com/remove-all-emails-from-queue/
清空单个邮件队列:

exim -Mrm MESSAGE-ID

清空所有的邮件队列

清空邮件队列
cPanel官方给予的命令:

exim -bp | grep -oP '\w{6}\-\w{6}\-\w{2}' | xargs -L 100 | exim -Mrm

方法1:使用 ‘exim -bp‘

exim -bp|grep "<"|awk {'print $3'}|xargs exim -Mrm

在此方法中,命令'exim -bp'用于从Exim邮件队列中查找消息ID,然后使用命令'exim -Mrm'作为参数从邮件队列中删除相应的电子邮件。

方法2: 使用‘exiqgrep‘

exiqgrep -i|xargs exim -Mrm

带有'-i'开关的exiqgrep命令列出邮件队列中的邮件ID,然后使用邮件ID删除邮件。

方法3:

exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | bash

1.删除所有被冻结的邮件

root@localhost# exiqgrep -z -i | xargs exim -Mrm

2.删除所有5天前的队列邮件

root@localhost# exiqgrep -o 432000 -i | xargs exim -Mrm

3.冻结所有来自某一发件人的邮件

root@localhost# exiqgrep -i -f 发件人@zeknet.com | xargs exim -Mf

0 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

zh_CNChinese
en_USEnglish zh_CNChinese