Llevaba cierto tiempo intentando conseguir que los correos que me llegaran a Gmail fueran reenviados automáticamente a mi móvil sin pagar ni un céntimo (y no soy catalán
) y todo esto gracias a Google Calendar.
Juntando piezas de aquí y de allá lo que he conseguido es que me llegue el autor y asunto de cada uno de los mensajes que me van llegando a mi correo, aunque, dados mis conocimientos, creo que se puede mejorar mucho.
Para los que tengáis curiosidad voy a intentar explicar (a mi modo) como lo he conseguido:
- La primera parte consistió en descargarme el trabajo de un tal Ivan López.
http://bytecoders.homelinux.com/files/descargas/SMSGoogle.tar.gz
Extraemos el contenido en un sitio que nos guste.
Modificaremos el archivo enviaSMS.sh para que la siguiente línea apunte a nuestro directorio donde tenemos la aplicación:
| SMS_HOME=/home/usuario/SMSGoogle |
.
Aquí podéis verlo, pero aviso que no es lo mío escribir scripts, y aceptare (y agradeceré) modificaciones y consejos
#!/bin/sh
#################################
# Sucrot #
# http://niblanconinegro.es/ #
#################################
# Para que funcione como yo quiero he puesto la carpeta donde tengo todas las cosas
RUTA=la/ruta/a/vuestra/carpeta
# Se hace la comprobación de correo para ver si hay nuevos mensajes y guardamos en un archivo "temporal1" (qué original)
curl -u usuario@gmail.com:password --silent "https://mail.google.com/mail/feed/atom" | tr -d '\n' | awk -F '<entry>' '{for (i=2; i<=NF; i++) {print $i}}' | perl -pe 's/^<title>(.*)<\/title>.*?<name>(.*?)<\/name>.*$/$2 → $1/' > $RUTA/temporal1
# Hacer un condicional por si no tenemos ningún correo nuevo, que el programa no haga nada de nada
diff $RUTA/temporal1 $RUTA/temporal2 > $RUTA/prueba
if [ `stat -c%s $RUTA/prueba` -eq 0 ] || [ `ls -l $RUTA/temporal1 | awk '{print $5}'` -eq 0 ]; then
echo "No hay ningún correo nuevo que enviar :)"
cp $RUTA/temporal1 $RUTA/temporal2
else
echo "Encontrados nuevos correos:"
# Puesto que soy un cafre haciendo scripts pongo que me salga en consola lo que se va a enviar en sms
# Por si antes ya habia correos nuevos, yo soloquiero que me envie los que todavía no ha enviado
echo `diff $RUTA/temporal1 $RUTA/temporal2 | cut -c 3-57`
# Le digo queme envíe la diferencia entre los que me envió y los nuevos actuales
# Acordaros de sustituir vuestro usuario y contraseña de gmail (talcual@gmail.com y el pass)
sh $RUTA/enviaSMS.sh correo@gmail.com password `diff $RUTA/temporal1 $RUTA/temporal2 | cut -c 3-57`
# Para que me copie lo que ha recibido para futuras ejecuciones del script
cp $RUTA/temporal1 $RUTA/temporal2
fi
# Fin del Script
.
- Este script debéis meterlo en la carpeta donde está todo “SMSGoogle” y darle permisos de ejecución con este comando:
| sudo chmod 777 googlesms.sh |
Y después podréis ejecutarlo sin problemas en la terminal con:
Lo que hice para que estuviera comprobando el correo constantemente es meter el script en cron, donde ya podéis asignarle la frecuencia que vosotros queráis.
Imagino que a muchos de vosotros esto no os será útil, pero para los que sí: bienvenidos