Spamassassin单行标签和移动邮件与X垃圾邮件标志:是到一个新的目录?

假设你有一个包含成千上万条消息的目录。 而你想把垃圾邮件与非垃圾邮件分开。

具体来说,你想:

  1. 对目录运行spamassassin,如果它认为它是垃圾邮件,用X-Spam-Flag:YES标记每个消息
  2. 有一个tcsh shell或perl单线程grep所有带有该标志的邮件,并将这些邮件移动到/ tmp / spam

你可以运行什么命令来完成这个任务? 例如,一些伪代码:

/usr/local/bin/spamassassin -eL ./Maildir/cur/* | grep "X-Spam-Flag: YES" | mv %1 /tmp/spam 

你的第一个猜测是非常接近的:-)

我做了一个bash脚本来扫描整个maildir对垃圾邮件

 #!/bin/bash DIR="/home/vmail/example.net/exampleuser/cur/" for f in $(ls $DIR); do spamassassin -Le "$DIR/$f" > /dev/null ERR=$? echo $ERR if [ $ERR -gt 0 ]; then mv "$DIR/$f" /tmp/spam/ else echo "This was no spam." fi done 

把它保存为mailcleanup.sh的某处,把你要扫描的文件夹的path设置为DIR,将其设置为+ x并运行它。

祝你好运!

结束了这么长时间,而不使用spamassassin:

  1. 通过IMAP客户端下载所有的头文件。
  2. search常见的垃圾邮件主题和地址。
  3. 一并删除并清除垃圾邮件。 (而不是移动到一个新的目录)