Tengo problemas para entender cómo enviar un archivo adjunto por correo electrónico usando Python. He enviado con éxito mensajes simples con el smtplib
. ¿Podría alguien explicar cómo enviar un archivo adjunto en un correo electrónico? Sé que hay otras publicaciones en línea, pero como principiante de Python, me resulta difícil entenderlas.
283
Respuestas:
Aquí está otro:
Es muy parecido al primer ejemplo ... Pero debería ser más fácil pasar.
fuente
file
enf
.part = MIMEApplication(open(f, 'rb').read())
Aquí está la versión modificada de
Oli
Python 3fuente
import pathlib
confrom pathlib import Path
Este es el código que terminé usando:
El código es muy similar a la publicación de Oli. Gracias a todos
Código basado en la publicación del problema de archivo adjunto de correo electrónico binario .
fuente
from email.mime.base import MIMEBase
Adaptado de aquí .
fuente
smtplib
admite. Para enviar archivos adjuntos, los codifica como un mensaje MIME y los envía en un correo electrónico de texto sin formato. Sin embargo, hay un nuevo módulo de correo electrónico de Python: docs.python.org/library/email.mime.htmlmsg.as_string()
y ciertamente parece el cuerpo de un correo electrónico MIME multiparte. Wikipedia explica MIME: en.wikipedia.org/wiki/MIMELine 6, in <module> msg.attach(MIMEText(file("text.txt").read())) NameError: name 'file' is not defined
Otra forma con python 3 (si alguien está buscando):
Asegúrese de permitir " aplicaciones menos seguras " en su cuenta de Gmail
fuente
Versión de Gmail, trabajando con Python 3.6 (tenga en cuenta que necesitará cambiar la configuración de Gmail para poder enviar correos electrónicos a través de smtp desde ella:
Uso:
Para usar con cualquier otro proveedor de correo electrónico, simplemente cambie las configuraciones de smtp.
fuente
El código más simple al que podría llegar es:
Se basó en la documentación oficial de Django.
fuente
Otras respuestas son excelentes, aunque todavía quería compartir un enfoque diferente en caso de que alguien esté buscando alternativas.
La principal diferencia aquí es que con este enfoque puede usar HTML / CSS para formatear su mensaje, de modo que pueda ser creativo y darle un poco de estilo a su correo electrónico. Aunque no está obligado a usar HTML, también puede usar solo texto sin formato.
Tenga en cuenta que esta función acepta enviar el correo electrónico a múltiples destinatarios y también permite adjuntar múltiples archivos.
Solo he intentado esto en Python 2, pero creo que también debería funcionar bien en 3:
¡Espero que esto ayude! :-)
fuente
Para explicación, puede usar este enlace que explica correctamente https://medium.com/@sdoshi579/to-send-an-email-along-with-attachment-using-smtp-7852e77623
fuente
fuente
A continuación se muestra una combinación de lo que encontré en la publicación de SoccerPlayer Aquí y el siguiente enlace que me facilitó la tarea de adjuntar un archivo xlsx. Encontrado aquí
fuente
Con mi código puede enviar archivos adjuntos de correo electrónico utilizando gmail, deberá:
establezca su dirección de gmail en " SU CORREO ELECTRÓNICO SMTP AQUÍ "
configura la contraseña de tu cuenta de gmail en " TU CONTRASEÑA SMTP AQUÍ_ "
En la parte ___ CORREO PARA RECIBIR EL MENSAJE_ debe configurar la dirección de correo electrónico de destino.
La notificación de alarma es el tema,
Alguien ha entrado en la habitación, la imagen adjunta es el cuerpo
["/home/pi/webcam.jpg"] es un archivo adjunto de imagen.
fuente
También puede especificar el tipo de archivo adjunto que desea en su correo electrónico, como ejemplo usé pdf:
inspiraciones / créditos a: http://linuxcursor.com/python-programming/06-how-to-send-pdf-ppt-attachment-with-html-body-in-python-script
fuente