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 ;-)
