GalerieBlogUnity3D ExamplesKontaktSitemapFullsitemap

split amavis's quarantine folder per domain

I needed a script which moves all spam mail in amavis's quarantine folder to a new folder. All quarantined mails should be stored in a subfolder of it's domain.

So here is the script (without any warranty):

#!/bin/sh
QUARANTINE_PATH="/var/amavis/quarantine"
LOG_FILE="/var/log/spam-mapping.log"
PER_USER_QUARANTINE_PATH="/var/amavis/per-domain-quarantine/"

for i in `find $QUARANTINE_PATH -type f | grep "spam-"`
do
    ENVELOPE_TO=`zcat "$i" | awk '/^X-Envelope-To: .*/ {print $2}' | head -1`
    DOMAIN=`echo $ENVELOPE_TO | awk -F @ '{sub(/</,"")};{sub(/>/,"")};{sub(/,/,"")};{print $2}'`
    FILE=`basename $i`
    if [ ! -e "${PER_USER_QUARANTINE_PATH}${DOMAIN}" ]; then
        mkdir ${PER_USER_QUARANTINE_PATH}${DOMAIN}
    fi
    if [ ! -e "${PER_USER_QUARANTINE_PATH}${DOMAIN}/${FILE}" ]; then
        mv ${i} ${PER_USER_QUARANTINE_PATH}${DOMAIN}/${FILE}
    fi
done

enjoy ;-)

 Permalink