#!/bin/sh
#
# Script vidant la poubelle de mails en me faisant un décompte du nombre de
# spams et virus reçus.

export LANG="fr_FR"
export LC_ALL="fr_FR"
JOUR=`date "+%d %B %Y à %H:%M"`
TRASHPART=`date "+%Y%m%d%H%M"`
LOCK=/tmp/$LOGNAME-spamrotate.lock

MAIL=0
if [ "$1" = "-m" ]; then
    MAIL=1
fi

if [ -f $LOCK ]; then
    exit
fi
touch $LOCK

#TRASH=`grep "TRASH" $HOME/.procmailrc | sed -e 's,^[^=]*=\(.*\)$,\1,'`
source $HOME/.procmailrc

# Attente de la fin de procmail...
#
FETCHMAILRUN=`ps aux | grep $LOGNAME | grep fetchmail | grep -v grep`
while [ "$FETCHMAILRUN" != "" ]; do
    sleep 10
    FETCHMAILRUN=`ps aux | grep $LOGNAME | grep fetchmail | grep -v grep`
done

mv $TRASH $TRASH-$TRASHPART.old
touch $TRASH

# Comptage des spams
#
NBMAILS=`grep "^From " $TRASH-$TRASHPART.old | wc -l | awk '{print $1}'`
if [ $NBMAILS != 0 ]; then
    TEXTE="Il y a eu $NBMAILS spam(s) ou virus pour le $JOUR."
else
    # Mouarf ! Si ça arrive, le nainternette est cassé !
    TEXTE="Il n'y a pas eu de spam ou virus pour le $JOUR."
fi

# Récupération des sujets
#
if [ $NBMAILS != 0 ]; then
    REGEXP="[sS][uU][bB][jJ][eE][cC][tT]:"
    SUJETS=`grep -Ei '^(Subject:|X-TN-TRASH:)' $TRASH-$TRASHPART.old | \
            sed -e "s/^$REGEXP/ */;s/^X-TN-TRASH:/    /"`
    TAILLE=`/bin/ls -lh $TRASH-$TRASHPART.old | awk '{print $5}'`
    TEXTE="$TEXTE\n\nMessage(s) déplacés dans $TRASH-$TRASHPART.old ($TAILLE)."
    TEXTE="$TEXTE\n\nSujet(s) :\n$SUJETS"
else
    rm -f $TRASH-$TRASHPART.old
fi
if [ $MAIL = 1 ]; then
    echo -e "$TEXTE" | mail $LOGNAME -s "Liste des spams et virus $TRASHPART"
else
    echo -e "$TEXTE"
    if [ -f $TRASH-$TRASHPART.old ]; then
        rm $TRASH
        mv $TRASH-$TRASHPART.old $TRASH
    fi
fi

rm -f $LOCK
