¿Cómo funciona el import smtplib en Python?

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

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!

¡CONVOCATORIA ABIERTA!

Aprende a Programar desde Cero

Full Stack Jr. Bootcamp

Clases en Directo | Acceso a +600 empresas | 98,51% empleabilidad

KeepCoding Bootcamps
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.