Skip to content

Instantly share code, notes, and snippets.

@2624789
Last active June 4, 2024 03:37
Show Gist options
  • Save 2624789/d42aaa12bf3a36356342 to your computer and use it in GitHub Desktop.
Save 2624789/d42aaa12bf3a36356342 to your computer and use it in GitHub Desktop.
Envia correo con archivo adjunto utilizando 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 = 'rpi.mailer.1@gmail.com'
destinatarios = ['destinatario_uno@correo.com', 'destinatario_dos@correo.com', 'destinatario_tres@correo.com']
asunto = '[RPI] Correo de prueba'
cuerpo = 'Este es el contenido del mensaje'
ruta_adjunto = 'imagen.jpg'
nombre_adjunto = 'imagen.jpg'
# Creamos el objeto mensaje
mensaje = MIMEMultipart()
# Establecemos los atributos del mensaje
mensaje['From'] = remitente
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('rpi.mailer.1@gmail.com','una contraseña segura')
# 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()
@afreisinger
Copy link

Funciona correctamente , mando 3 pdf, en gmail lo visualizo correctamente los 3, pero en icloud solo veo uno, que puede estar pasando ?

@Irvdragon
Copy link

Fijate que tengo un codigo trato de enviar adjuntos pero estos llegan en 0 al usuario final

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment