Volver a la página principal
miércoles 17 julio 2024
97

Cómo enviar emails desde Python

1. Enviar correos electrónicos con smtplib

La biblioteca smtplib de Python proporciona una forma simple de enviar correos electrónicos utilizando el Protocolo Simple de Transferencia de Correo (SMTP). A continuación se presenta un ejemplo básico de cómo enviar un correo electrónico con smtplib.

Ejemplo básico con smtplib

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

# Configuración del servidor SMTP y credenciales
smtp_server = 'smtp.gmail.com'
smtp_port = 587
username = 'tu_email@gmail.com'
password = 'tu_contraseña'

# Crear el mensaje
msg = MIMEMultipart()
msg['From'] = username
msg['To'] = 'destinatario@example.com'
msg['Subject'] = 'Asunto del correo'
body = 'Este es el cuerpo del correo electrónico.'

msg.attach(MIMEText(body, 'plain'))

# Enviar el correo
try:
    server = smtplib.SMTP(smtp_server, smtp_port)
    server.starttls()  # Iniciar conexión TLS
    server.login(username, password)
    text = msg.as_string()
    server.sendmail(username, 'destinatario@example.com', text)
    print('Correo enviado exitosamente')
except Exception as e:
    print(f'Error al enviar el correo: {e}')
finally:
    server.quit()

Desglose del código

1. Configuración del servidor SMTP y credenciales:

  • smtp_server y smtp_port: especifica el servidor SMTP y el puerto. Aquí usamos Gmail como ejemplo.
  • username y password: tus credenciales de acceso al servidor SMTP.

2. Creación del mensaje:

  • Utilizamos MIMEMultipart para crear un objeto de mensaje que puede contener múltiples partes.
  • msg['From'], msg['To'], y msg['Subject']: configuramos el remitente, destinatario y asunto del correo.
  • MIMEText(body, 'plain'): añadimos el cuerpo del correo como texto plano.

3. Envío del correo:

  • Creamos una instancia de SMTP, iniciamos la conexión TLS y nos autenticamos.
  • Convertimos el mensaje a cadena de texto con msg.as_string() y lo enviamos con sendmail.

2. Enviar correos electrónicos con yagmail

yagmail es una biblioteca de terceros que simplifica el envío de correos electrónicos con Gmail. Es más fácil de usar y menos propensa a errores que smtplib.

Instalación

Primero, necesitas instalar yagmail:

pip install yagmail

Ejemplo básico con yagmail

import yagmail

# Configuración de yagmail y credenciales
yag = yagmail.SMTP('tu_email@gmail.com', 'tu_contraseña')

# Enviar el correo
destinatario = 'destinatario@example.com'
asunto = 'Asunto del correo'
cuerpo = 'Este es el cuerpo del correo electrónico.'

try:
    yag.send(to=destinatario, subject=asunto, contents=cuerpo)
    print('Correo enviado exitosamente')
except Exception as e:
    print(f'Error al enviar el correo: {e}')

Desglose del código

1. Configuración de yagmail y credenciales:

  • Creamos una instancia de yagmail.SMTP con nuestras credenciales.

2. Envío del correo:

  • Utilizamos el método send de yagmail para enviar el correo especificando el destinatario, asunto y contenido del correo.

Conclusión

Enviar correos electrónicos desde Python puede ser sencillo y rápido utilizando las herramientas adecuadas. smtplib proporciona una solución robusta y flexible, mientras que yagmail simplifica el proceso y reduce la cantidad de código necesario. Dependiendo de tus necesidades, puedes elegir la herramienta que mejor se adapte a tu proyecto.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer