Este script para Bash comprueba una casilla de email POP3 que indiquen, si hay mails los baja de a uno, le extrae el archivo adjunto (si lo hubiera) y finalmente borra el mail del server y el mail descargado, dejando solo el adjunto en el directorio destino. Lo hice para automatizar un poco el proceso de escaneo de una fotocopiadora Kyocera, que la unica opcion que trae es enviar lo escaneado a un mail.
Los requerimientos son basicos, instalar el paquete "mpack" para poder extraer el adjunto y asegurarse de tener un Bash medianamente nuevo (los ubunteros van a necesitar una version superior a la 9.10).
Yo
Los requerimientos son basicos, instalar el paquete "mpack" para poder extraer el adjunto y asegurarse de tener un Bash medianamente nuevo (los ubunteros van a necesitar una version superior a la 9.10).
#!/bin/bash
tmpfile="tmp.eml"
destdir="/home/user/temp" # Directorio de destino
host="mail.server.com" # Server POP3
user="[email protected]" # Usuario POP3
passwd="123456" # Contraseña
port="110"
CR=$'r'
exec 3<>/dev/tcp/$host/$port
read ok line <&3
[ "${ok%$CR}" != "+OK" ] && exit 5
echo user $user >&3
read ok line <&3
[ "${ok%$CR}" != "+OK" ] && exit 5
echo pass $passwd >&3
read ok line <&3
[ "${ok%$CR}" != "+OK" ] && exit 5
echo stat >&3
read ok num x <&3
if [[ $num > 0 ]]; then
mkdir $destdir
for (( c=1; c<=num; c++ ))
do
echo retr $c >&3
while read <&3
do
echo "$REPLY" >> $destdir/$tmpfile
if [[ $REPLY == $( echo -e "./r/n" ) ]]; then ### IMPORTANTE: CAMBIAR LA BARRA "/" POR LA INVERSA
break
fi
done
munpack -t -C $destdir $tmpfile
rm $destdir/$tmpfile $destdir/part*
echo dele $c >&3
done
chmod 777 $destdir/*
fi
echo quit >&3
Yo

