Назад | Перейти на главную страницу

Spamassassin однострочный, чтобы пометить и переместить почту с X-Spam-Flag: ДА в новый каталог?

Допустим, у вас есть каталог с десятками тысяч сообщений. И вы хотите отделить спам от не-спама.

В частности, вы хотели бы:

  1. Запустите spamassassin против каталога, помечая каждое сообщение X-Spam-Flag: ДА, если он считает, что это спам
  2. Используйте оболочку tcsh или однострочную perl grep для всей почты с флагом и переместите эти письма в / tmp / spam

Какую команду вы можете запустить для этого? Например, какой-то псевдокод:

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

Ваша первая догадка была довольно близкой :-)

Я сделал bash-скрипт для сканирования всего почтового ящика на спам

#!/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 где-нибудь, укажите путь к папке, которую вы хотите сканировать, как DIR, установите ее + x и запустите.

Удачи!

Закончилось этим долгим путем, без использования spamassassin:

  1. Загрузите все заголовки через IMAP-клиент.
  2. Ищите заголовки на распространенные темы спама и с адресов.
  3. Удаляйте спам в массовом порядке. (вместо перехода в новый каталог)