Saturday, May 22, 2021

Correo Python con imagen embebida

 # -*- coding: utf-8 -*-

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email.mime.image import MIMEImage
from email import encoders
 
# Iniciamos los parámetros del script
remitente = 'correo@gmail.com'
destinatarios = ['correoDestino@gmail.com']#,'dest2','dest3']
asunto = 'Correo de prueba - Imagen'
#cuerpo = 'Este es el contenido del mensaje'
cuerpo = 'Hola!<br/> <br/> Este es un <b>e-mail</b> enviando desde <b>Python</b>'
ruta_adjunto = '/home/pi/correo.txt'
nombre_adjunto = 'correo.txt'
 
# Creamos el objeto mensaje
mensaje = MIMEMultipart()
 
# Establecemos los atributos del mensaje
mensaje['From'] = 'correo@gmail.com'
mensaje['To'] = ", ".join(destinatarios)
mensaje['Subject'] = asunto
 
# Agregamos el cuerpo del mensaje como objeto MIME de tipo texto
#mensaje.attach(MIMEText(cuerpo, 'html'))
# We reference the image in the IMG SRC attribute by the ID we give it below
msgText = MIMEText('<b>Some <i>HTML</i> text</b> and an image.<br><img 
src="cid:image1"><br><table class="default">  <tr>    <td>Celda 1</td>    
<td>Celda 2</td>    <td>Celda 3</td>  </tr>  <tr>    <td>Celda 4</td>   
 <td>Celda 5</td>    <td>Celda 6</td>  </tr></table>''html')
mensaje.attach(msgText)

# Abrimos el archivo que vamos a adjuntar
archivo_adjunto = open(ruta_adjunto'rb')
 # This example assumes the image is in the current directory
fp = open('test.jpg''rb')
msgImage = MIMEImage(fp.read())
fp.close()
# Define the image's ID as referenced above
msgImage.add_header('Content-ID''<image1>')
mensaje.attach(msgImage)

# 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('correo@gmail.c','TuClave')
 
# Convertimos el objeto mensaje a texto
texto = mensaje.as_string()
 
# Enviamos el mensaje
sesion_smtp.sendmail(remitentedestinatariostexto)
 
# Cerramos la conexión
sesion_smtp.quit()

No comments:

Post a Comment