Codigo para el envio de un correo electronico con Python a traves de Gmail (o otro servidor)
La idea es muy facil, el siguiente codigo es una muestra de como funciona en Python el envio de email a traves de la libreria smtplib. Si prefieres un video tutorial visita la siguiente URL: https://www.youtube.com/watch?v=vCFioQizM4w
El codigo completo lo puedes descargar en la siguiente URL https://github.com/al118345/envio_email
Como puedes observar, el codigo no tiene ningun misterio. En gmail_user introduces el correo electronico desde donde se enviara el email y en la linea 12 anades el password que utiliza. A continuacion en la linea 19 creamos el asunto y en la 20 el mensaje.
Para finalizar, a partir de la linea 26 establecemos la conexion con el servidor SMTP de Gmail. Un servidor SMTP es un ordenador encargado de llevar a cabo el servicio de envio de correos electronicos y permitiendo su transporte por Internet.
Si no utilizas Gmail, puedes modificar la linea 26 con la informacion de otro proveedor del servicio. Por ejemplo, el servidor SMTP de Hotmail es smtp.live.com.
Activar el envio de correos con Gmail
La configuracion por defecto de Gmail no permite enviar correos electronicos en aplicaciones como la que hemos implementado en este articulo. Para permitirlo hay que seguir los siguientes pasos.



Una versión más segura para proyectos reales
El ejemplo original sirve para entender SMTP, pero en un proyecto real no conviene escribir la contraseña directamente en el código fuente. Usa variables de entorno o un gestor de secretos y, si utilizas Gmail, crea una contraseña de aplicación después de activar la verificación en dos pasos.
La clase EmailMessage también deja el código más claro porque separa asunto, remitente, destinatario y cuerpo sin construir a mano el mensaje completo.
Enviar un adjunto
Si necesitas enviar facturas, informes o PDFs generados, crea el mensaje con EmailMessage y adjunta el fichero como bytes. El código queda más legible y se evitan muchos errores de codificación.
Configuración SMTP por proveedor
- Gmail: smtp.gmail.com, puerto SSL 465 o STARTTLS 587.
- Outlook o Hotmail: smtp.office365.com, normalmente STARTTLS por el puerto 587.
- Hosting propio: revisa servidor SMTP, puerto y modo de cifrado en el panel del proveedor.
Errores habituales
- Authentication failed: revisa usuario, contraseña de aplicación y verificación en dos pasos.
- Connection timeout: comprueba puerto, firewall y si tu hosting bloquea SMTP.
- Acentos o caracteres especiales rotos: usa EmailMessage y contenido UTF-8.