-
Envío de correos desde Python
¿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 encodersConfiguració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:
- Configura el servidor SMTP.
- Crea un mensaje MIME multipart.
- Adjunta un cuerpo de texto al correo.
- Adjunta un archivo.
- 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’