Estar comunicado hoy en dia, es imprescindible para muchos, y estar al tanto del correo a veces se convierte en un vicio u obligacion (al menos en mi caso), si bien se puede tener acceso a internet y revisar nuestra casilla de email con los celulares de hoy en dia es relativamente facil, pero esto no siempre es factible, por el solo hecho d q nesecitamos un celular de "los nuevos" y contratar algun pack de datos. Pues bien para los q se quedaron en el tiempo y siguen utilizando celulares con algunos añitos encima (sin 3G, ni wifi, ni siquiera pantalla a color) he realizado una aplicacion q trabaja como demonio que nos avisara si nos llego algun mail.
En realidad sirve para cualquier tipo/modelo de celular (sin distincion de raza ni religion =), el funcionamiento es simple, chequea una cuenta POP cada cierto intervalo de tiempo y al encontrar un correo nuevo, lo "formatea" a un mensaje de texto y lo envia como un simple sms.
Es similar a crear un filtro en gmail, solo q lo podemos utilizar con cualquier cuenta de correo, sin mas q decir aqui va el codigo, sientase libres de modificarlo y personalizarlo a gusto ;)
# # # # # ## Email to S M S - v 0.1
# ===================================
# Chequea una casilla de correo (pop), interpreta el mensaje
# y lo reenvia como sms
#
# by Mario G. Corvalan (Brujo - 2010)
import smtplib, time, poplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
class EmailerPOP3:
def __init__(self):
self.M = poplib.POP3_SSL('pop.gmail.com',995)
self.M.user('xxxxxxxxxxxxxxx@gmail.com')
print self.M.pass_('xxxxxxxxxxxxxxxxxxxxxxxx')
def readmail(self):
self.M.list()
numMessages = len(self.M.list()[1])
vector = self.M.retr(numMessages)[1]
return vector
M.quit
class EmailerSMTP:
def __init__(self): # Configuracion de la cuenta d e-mail
self.mailserver = smtplib.SMTP('smtp.gmail.com',587)
print self.mailserver.ehlo()
print self.mailserver.starttls()
print self.mailserver.ehlo()
print self.mailserver.login("xxxxxxxxxxxx@gmail.com", "xxxxxxxxxxxxxxxx")
def cuerpo(self, asunto, mailTo, mailTexto, mailFrom): # Asunto y mail destino a mostrar
self.mensaje = MIMEText(mailTexto)
self.mensaje['From'] = mailFrom
self.mensaje['To'] = mailTo
self.mensaje['Subject'] = asunto
def envio(self,mailTo,mailFrom): # Envio a la direccion mostrada en cuerpo(), podria ser diferente ;)
self.mailserver.sendmail(mailFrom, mailTo, self.mensaje.as_string())
#self.mailserver.close()
def fin(self):
self.mailserver.close()
fecha = []
mailTo = "xxxxxxxxxxxxxxx@sms.cmail.com.ar" #@sms.movistar.net.ar @personal-net.com.ar
try:
LeerEmail = EmailerPOP3()
except:
print "No conectar al POP3"
else:
fecha = LeerEmail.readmail()
print fecha # ultimo mail recibido
while 1:
try:
LeerOtro = EmailerPOP3()
except:
print "No puedo conectar al POP3 para leer otro"
time.sleep(120)
else:
vector = []
vector = LeerOtro.readmail()
if fecha[2] != vector[2]:
try:
EnviarEmail = EmailerSMTP()
except:
print "no entra al fucking smtp!!!"
time.sleep(120)
else:
EnviarEmail.cuerpo(vector[17], mailTo, vector[24], vector[14])
i=0
while i < n:
EnviarEmail.envio(mailTo, vector[14])
i=i+1
EnviarEmail.fin()
fecha[2] = vector[2]
time.sleep(60)
# ===================================
# Chequea una casilla de correo (pop), interpreta el mensaje
# y lo reenvia como sms
#
# by Mario G. Corvalan (Brujo - 2010)
import smtplib, time, poplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
class EmailerPOP3:
def __init__(self):
self.M = poplib.POP3_SSL('pop.gmail.com',995)
self.M.user('xxxxxxxxxxxxxxx@gmail.com')
print self.M.pass_('xxxxxxxxxxxxxxxxxxxxxxxx')
def readmail(self):
self.M.list()
numMessages = len(self.M.list()[1])
vector = self.M.retr(numMessages)[1]
return vector
M.quit
class EmailerSMTP:
def __init__(self): # Configuracion de la cuenta d e-mail
self.mailserver = smtplib.SMTP('smtp.gmail.com',587)
print self.mailserver.ehlo()
print self.mailserver.starttls()
print self.mailserver.ehlo()
print self.mailserver.login("xxxxxxxxxxxx@gmail.com", "xxxxxxxxxxxxxxxx")
def cuerpo(self, asunto, mailTo, mailTexto, mailFrom): # Asunto y mail destino a mostrar
self.mensaje = MIMEText(mailTexto)
self.mensaje['From'] = mailFrom
self.mensaje['To'] = mailTo
self.mensaje['Subject'] = asunto
def envio(self,mailTo,mailFrom): # Envio a la direccion mostrada en cuerpo(), podria ser diferente ;)
self.mailserver.sendmail(mailFrom, mailTo, self.mensaje.as_string())
#self.mailserver.close()
def fin(self):
self.mailserver.close()
fecha = []
mailTo = "xxxxxxxxxxxxxxx@sms.cmail.com.ar" #@sms.movistar.net.ar @personal-net.com.ar
try:
LeerEmail = EmailerPOP3()
except:
print "No conectar al POP3"
else:
fecha = LeerEmail.readmail()
print fecha # ultimo mail recibido
while 1:
try:
LeerOtro = EmailerPOP3()
except:
print "No puedo conectar al POP3 para leer otro"
time.sleep(120)
else:
vector = []
vector = LeerOtro.readmail()
if fecha[2] != vector[2]:
try:
EnviarEmail = EmailerSMTP()
except:
print "no entra al fucking smtp!!!"
time.sleep(120)
else:
EnviarEmail.cuerpo(vector[17], mailTo, vector[24], vector[14])
i=0
while i < n:
EnviarEmail.envio(mailTo, vector[14])
i=i+1
EnviarEmail.fin()
fecha[2] = vector[2]
time.sleep(60)
2 comentarios:
Donde coloco todo ese código?
y si tenes instalado python en tu pc lo podes correr localment con
$ python mail2sms.py
lo ideal seria q lo dejes funcionando como un demonio en un servidor, asi queda a la escucha las 24hs.
Saludos
Publicar un comentario