Envío de correos desde Python

image_printModo impresión y lectura

¿Qué es MIME?

MIME (Extensiones Multipropósito de Correo de Internet) es un estándar que permite la transmisión de varios tipos de contenido a través del correo electrónico, más allá del texto simple.

  • Versatilidad: MIME permite incluir texto, imágenes, audio, video y otros tipos de archivos en los mensajes de correo electrónico.
  • Codificación: Especifica métodos para codificar datos no textuales en texto plano para una transmisión segura por Internet.
  • Encabezados: Agrega campos adicionales a los encabezados estándar del correo electrónico para indicar el tipo y la codificación del contenido.

Ejemplo de Código, vemos que es una clase:

import smtplib
import mimetypes
from email.message import EmailMessage
from email.utils import make_msgid
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

Configuración del servidor SMTP

smtp_server = «smtp.gmail.com»
smtp_port = 587
username = «tu_correo@gmail.com»
password = «tu_contraseña»

Creación del mensaje

msg = MIMEMultipart()
msg[‘From’] = username
msg[‘To’] = «destinatario@ejemplo.com»
msg[‘Subject’] = «Asunto del Correo»

Cuerpo del correo

body = «Hola, este es un correo con un archivo adjunto.»
msg.attach(MIMEText(body, ‘plain’))

Adjuntar archivo

filename = «archivo.txt»
attachment = open(filename, «rb»)

mime_base = MIMEBase(‘application’, ‘octet-stream’)
mime_base.set_payload(attachment.read())
encoders.encode_base64(mime_base)
mime_base.add_header(‘Content-Disposition’, f»attachment; filename= {filename}»)

msg.attach(mime_base)

Envío del correo

server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, password)
server.send_message(msg)
server.quit()

print(«Correo enviado con éxito.»)

Este código hace lo siguiente:

  1. Configura el servidor SMTP.
  2. Crea un mensaje MIME multipart.
  3. Adjunta un cuerpo de texto al correo.
  4. Adjunta un archivo.
  5. Envía el correo a través del servidor SMTP

De no existir el archivo nos remitirá este error:

attachment = open(filename, «rb»)
FileNotFoundError: [Errno 2] No such file or directory: ‘archivo.txt’

image_printModo impresión y lectura
Translate » Traductor