Limpiar buzones POP3

Necesito limpiar periódicamente varios buzones pop3. 2 soluciones:

  1. crear un usuario que haga un fetchmail y tener el .fetchmailrc tal que los correos vayan a /dev/null. Problema: el ordenador se bajara los emails, por tanto consumirá bastante ancho de banda si hay muchos mails gordos.
  2. Un pequeño script :)
#!/bin/bash

INPUT=$1
PORT=110

# $1 = server
# $2 = user
# $3 = pass
function borraMailUser () {

  # pillar el n. de mails
  TOTAL=$((echo "user $2"
           echo "pass $3"
           echo "list"
           echo "quit") | nc $1 $PORT | grep -B 2 "out" | head -n 1 | cut -d \  -f 1)

  # borrar este n. de mails
  (echo "user $2"
   echo "pass $3"

   for num in $(seq $TOTAL)
   do
     echo "DELE $num"
   done
   echo "quit") | nc $1 $PORT

  echo "$1 - $2 borrados $TOTAL mails"

}

function testParms () {

  if [ -z $1 ]
  then
     echo "Se necesita el fichero de logins"
     echo ""
     echo "Usage: clearPop3.sh archivo_logins"
     echo ""
     echo "Formato archivo logins:"
     echo "1. un login por linea"
     echo "2. cada linea es"
     echo "   servidor:usuario:password"
     echo ""
     exit -1
  fi
}

testParms $1

while IFS=: read server user pass
do
   borraMailUser $server $user $pass
done < $INPUT

exit 0

Comentarios