¿Cómo funciona el import smtplib en Python?

| Última modificación: 14 de enero de 2025 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Existen varios módulos que nos sirven para trabajar con correos electrónicos, entre ellos el módulo de import smtplib en Python, el cual permite enviar correos electrónicos a través del protocolo SMTP. Veamos cómo funciona y qué puedes hacer con él.

import smtplib en Python

¿Qué es smtplib y cómo se usa?

El módulo smtplib en Python es un cliente para el protocolo simple de transferencia de correo o SMTP, por sus siglas en inglés. Este es un protocolo estándar que sirve para enviar correos electrónicos a través de internet. Con import smtplib puedes conectarte a un servidor SMTP, hacer loggin y enviar correos electrónicos desde tu código.

En otras palabras, es como un cartero digital que lleva tus mensajes a sus destinatarios, utilizando una infraestructura ya existente.

Pasos para enviar un correo con smtplib

Para usar el módulo de import smtplib puedes hacer lo siguiente:

  • Importar el módulo: El primer paso es incluir smtplib en tu proyecto. Este módulo viene integrado en Python, por lo que no necesitas instalarlo, solo debes importarlo así:
import smtplib
  • Conectar al servidor SMTP: Puedes usar un servidor local o uno externo como Gmail. Veamos cómo hacer una conexión a Gmail:
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls() # Inicia una conexión segura
server.login('[email protected]', 'tu_contraseña')
  • Enviar un correo: Una vez conectado, puedes usar el método sendmail para enviar un correo. Veamos un ejemplo:
import smtplib

# Conectar al servidor
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login('[email protected]', 'tu_contraseña')

# Enviar el correo
from_email = '[email protected]'
to_email = '[email protected]'
mensaje = """\
Subject: Hola desde Python

Este es un mensaje enviado con smtplib.
"""
server.sendmail(from_email, to_email, mensaje)
server.quit()

Otras funcionalidades especializadas con import smtplib

El módulo de import smtplib ofrece variadas opciones que nos ayudan a gestionar nuestros correos. Veamos:

  • Usar SSL desde el inicio: Para conexiones más seguras, puedes usar SMTP_SSL en lugar de SMTP:
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.login('[email protected]', 'tu_contraseña')
  • Depuración de errores: Activa el modo de depuración para ver detalles de la comunicación con el servidor:
server.set_debuglevel(1)
  • Adjuntar archivos: Para enviar correos con archivos adjuntos, combina smtplib con el módulo email. Veamos un ejemplo:
from email.message import EmailMessage
import smtplib

# Crear el mensaje
msg = EmailMessage()
msg['Subject'] = 'Archivo adjunto'
msg['From'] = '[email protected]'
msg['To'] = '[email protected]'
msg.set_content('Te envío un archivo adjunto.')

# Adjuntar un archivo
with open('archivo.pdf', 'rb') as f:
file_data = f.read()
msg.add_attachment(file_data, maintype='application', subtype='pdf', filename='archivo.pdf')

# Enviar el mensaje
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.login('[email protected]', 'tu_contraseña')
server.send_message(msg)
server.quit()

Algunos errores que pueden surgir y cómo solucionarlos

Algunos errores en el uso de import smtplib son frecuentes. Veamos algunos y cómo podemos solucionarlos fácilmente:

  • Error de autenticación (SMTPAuthenticationError): Asegúrate de usar credenciales válidas. Si usas Gmail, activa “Acceso a aplicaciones menos seguras” o configura una contraseña de aplicaciones.
  • Conexión rechazada (SMTPConnectError): Verifica la dirección del servidor SMTP y el puerto.
  • Problemas con TLS/SSL: Usa starttls antes de iniciar sesión o utiliza SMTP_SSL para conexiones seguras.

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

Si te quieres seguir instruyendo sobre lenguajes de programación y temáticas variadas, no dudes en unirte a nuestro bootcamp en programación para principiantes, en donde podrás acceder a la mejor formación que te ayudará a escalar tu camino hacia el éxito. ¡No esperes más para transformar tu futuro y da el salto hacia un sector lleno de oportunidades!

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos