with raspberry library enviar correo con adjunto python email

raspberry - send email python smtplib



Comprobando el correo electrónico con Python (7)

Estoy interesado en activar una determinada acción al recibir un correo electrónico de una dirección específica con un tema específico. Para poder hacerlo, necesito implementar la supervisión de mi buzón de correo, revisando cada correo entrante (en particular, uso gmail). ¿Cual es la forma mas fácil de hacer eso?



Gmail ofrece la posibilidad de conectarse a través de POP, que puede activar en el panel de configuración de Gmail. Python puede hacer conexiones a través de POP con bastante facilidad:

import poplib from email import parser pop_conn = poplib.POP3_SSL(''pop.gmail.com'') pop_conn.user(''username'') pop_conn.pass_(''password'') #Get messages from server: messages = [pop_conn.retr(i) for i in range(1, len(pop_conn.list()[1]) + 1)] # Concat message pieces: messages = ["/n".join(mssg[1]) for mssg in messages] #Parse message intom an email object: messages = [parser.Parser().parsestr(mssg) for mssg in messages] for message in messages: print message[''subject''] pop_conn.quit()

Solo necesitaría ejecutar este script como un trabajo cron. No estoy seguro de qué plataforma está, por lo que YMMV en cuanto a cómo se hace eso.


Gmail proporciona una feed atómica para nuevos mensajes de correo electrónico. Debería poder monitorear esto autenticando con pycURL (o alguna otra biblioteca de red) y bajando el feed. Hacer una solicitud GET para cada nuevo mensaje debe marcarlo como leído, por lo que no tendrá que hacer un seguimiento de los correos electrónicos que ha leído.


La gente parece estar entusiasmada con Lamson:

https://github.com/zedshaw/lamson

Es un servidor SMTP escrito completamente en Python. Estoy seguro de que podría aprovechar eso para hacer todo lo que necesita, simplemente reenvíe los mensajes de Gmail a ese servidor SMTP y luego haga lo que desee.

Sin embargo, creo que probablemente sea más fácil hacer la recomendación de alimentación de ATOM anterior.

EDIT: Lamson ha sido abandonado


Recientemente resolví este problema usando procmail y python

Lea la documentación para procmail. Puedes decirle que envíe todo el correo electrónico entrante a un script de Python como este en un archivo especial de configuración de procmail

:0: | ./scripts/ppm_processor.py

Python tiene un paquete de "correo electrónico" disponible que puede hacer todo lo que pueda desear hacer con el correo electrónico. Lea sobre los siguientes ...

from email.generator import Generator from email import Message from email.MIMEBase import MIMEBase from email.MIMEText import MIMEText from email.mime.multipart import MIMEMultipart


Si bien no es específico de Python, ¡siempre me ha encantado procmail donde sea que pueda instalarlo ...!

Solo use como algunas de sus líneas de acción para las condiciones que elija | pathtoyourscript | pathtoyourscript (barra vertical AKA seguido del guión que desea ejecutar en esos casos) y su correo se canaliza, en las condiciones que elija, al guión de su elección, para que haga lo que quiera, difícil de pensar de un enfoque más general para "desencadenar acciones de su elección al recibir correos que cumplan con sus condiciones específicas. Por supuesto, no hay límites a la cantidad de condiciones que puede verificar, cuántas líneas de acción puede activar una sola condición (simplemente encierre todo las líneas de acción que desee en { } llaves), etc., etc.


print(''please enter str'') def email(n=str): if (''@'' and ''.'') in n: z=n.find(''@'') c=n.find(''.'') if type(n[:z] and n[z:c] and n[c:])==str: print(''valid email'') else: print(''Invalid email'') else: print(''Invalid email'')