现在我有一个超过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的用户身份运行 – – 您可能需要在mailq
和exim -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 exim4
和man aliases
。