发现并清除无效的电子邮件

现在我有一个超过1000封电子邮件的exim队列,我想运行队列并删除所有发送到无效电子邮件的电子邮件(那些不再存在的电子邮件)

exiqgrep -i -f [luser]@domain | xargs exim -Mrm 

如果邮件在队列中并且被冻结,那么下面应该工作 – 但是我没有testing它并且不承担任何责任,如果它变得有感觉并且吃掉你的邮件服务器

 for i in `mailq | grep "\*\*\* frozen \*\*\*" | cut -f 3 -d " "` ; do exim -Mrm $i ; done 

如果需要打击非冻结的消息,则根据需要更改grep模式(如果您可以确信可以将队列中的所有内容都加以核实,则这是最容易的,并且确保以可以运行exim -Mrm和mailq的用户身份运行 – – 您可能需要在mailqexim -Mrm之前插入sudo

另外,几乎可以肯定的是,使用xargs而不是for内置和反引号的方法更简单。 希望有人会很快与:-)

扫描/var/spool/exim4/msglog文件中的无效地址。

你可以用一个命令(使用无效地址) cd /var/spool/exim4/msglog; for msg in $(grep -l address); do exim4 -Mmd $msg address标记地址cd /var/spool/exim4/msglog; for msg in $(grep -l address); do exim4 -Mmd $msg address cd /var/spool/exim4/msglog; for msg in $(grep -l address); do exim4 -Mmd $msg address cd /var/spool/exim4/msglog; for msg in $(grep -l address); do exim4 -Mmd $msg address

您可以使用命令cd /var/spool/exim4/msglog; exim4 -M *清除消息cd /var/spool/exim4/msglog; exim4 -M * cd /var/spool/exim4/msglog; exim4 -M * 。 这将尝试传递队列中的所有消息。

您可以使用/etc/aliases的别名来阻止传入的邮件到旧地址,例如:

address : :fail: No longer here

有关更多信息,请参见man exim4man aliases