Spamassassin one-liner para marcar e mover email com um X-Spam-Flag: YES para um novo diretório?

2

Digamos que você tenha um diretório com dezenas de milhares de mensagens nele. E você quer separar o spam do não spam.

Especificamente, você gostaria de:

  1. Execute o spamassassin no diretório, marcando cada mensagem com um sinalizador X-Spam: SIM, se achar que é spam
  2. Ter um shell tcsh ou perl one-liner para grep todos os emails com o flag e mover esses emails para / tmp / spam

Qual comando você pode executar para realizar isso? Por exemplo, algum pseudocódigo:

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

2 respostas

1

Acabou fazendo isso por muito tempo, sem usar o spamassassin:

  1. Faça o download de todos os cabeçalhos por meio de um cliente IMAP.
  2. Pesquise cabeçalhos de assuntos comuns com spam e de endereços.
  3. Excluir & purgar spam em massa. (em vez de mudar para um novo diretório)
por 18.03.2010 / 17:01
6

Seu primeiro palpite foi bem próximo :-)

Eu fiz um script bash para escanear um maildir inteiro contra spam

#!/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

Salve isso como mailcleanup.sh em algum lugar, coloque o caminho da pasta que você deseja escanear como DIR, defina-o + xe execute-o.

Boa sorte!

    
por 01.12.2012 / 00:49