Tuesday, December 15, 2020

Enviar correo con adjunto en python

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
 
# Iniciamos los parámetros del script
remitente = 'Origen@gmail.com'
destinatarios = ['destinatarioseparadosPorcoma','dest2','dest3']
asunto = 'Correo de prueba'
cuerpo = 'Este es el contenido del mensaje'
ruta_adjunto = 'D:/Proyectos/Python/Archivo.xlsx'
nombre_adjunto = 'Archivo.xlsx'
 
# Creamos el objeto mensaje
mensaje = MIMEMultipart()
 
# Establecemos los atributos del mensaje
mensaje['From'] = 'origen@gmail.com'
mensaje['To'] = ", ".join(destinatarios)
mensaje['Subject'] = asunto
 
# Agregamos el cuerpo del mensaje como objeto MIME de tipo texto
mensaje.attach(MIMEText(cuerpo, 'plain'))
 
# Abrimos el archivo que vamos a adjuntar
archivo_adjunto = open(ruta_adjunto, 'rb')
 
# Creamos un objeto MIME base
adjunto_MIME = MIMEBase('application', 'octet-stream')
# Y le cargamos el archivo adjunto
adjunto_MIME.set_payload((archivo_adjunto).read())
# Codificamos el objeto en BASE64
encoders.encode_base64(adjunto_MIME)
# Agregamos una cabecera al objeto
adjunto_MIME.add_header('Content-Disposition', "attachment; filename= %s" % nombre_adjunto)
# Y finalmente lo agregamos al mensaje
mensaje.attach(adjunto_MIME)
 
# Creamos la conexión con el servidor
sesion_smtp = smtplib.SMTP('smtp.gmail.com', 587)
 
# Ciframos la conexión
sesion_smtp.starttls()
 
# Iniciamos sesión en el servidor
sesion_smtp.login('origen@gmail.com','ClaveSegura')
 
# Convertimos el objeto mensaje a texto
texto = mensaje.as_string()
 
# Enviamos el mensaje
sesion_smtp.sendmail(remitente, destinatarios, texto)
 
# Cerramos la conexión
sesion_smtp.quit()
 

basado en https://gist.github.com/2624789/d42aaa12bf3a36356342 

No comments:

Post a Comment