El servicio de correo electrónico de Microsoft, Outlook (antes Hotmail), permite a los desarrolladores de aplicaciones enviar mensajes a través del protocolo SMTP. Los datos del servicio son los siguientes:
- Dominio:
smtp-mail.outlook.com
- Puerto: 587
- Protocolo de seguridad: TLS
Con esta inforomación y el auxilio de los módulos estándares email
y smtplib
, podemos emplear el siguiente código para enviar un correo electrónico desde una casilla de Outlook (también acepta las antiguas casillas @hotmail.com, @live.com, etc.):
from email.message import EmailMessage import smtplib remitente = "remitente@outlook.com" destinatario = "destinatario@ejemplo.com" mensaje = "¡Hola, mundo!" email = EmailMessage() email["From"] = remitente email["To"] = destinatario email["Subject"] = "Correo de prueba" email.set_content(mensaje) smtp = smtplib.SMTP("smtp-mail.outlook.com", port=587) smtp.starttls() smtp.login(remitente, "clave_de_outlook_123") smtp.sendmail(remitente, destinatario, email.as_string()) smtp.quit()
Deberás reemplazar "remitente@outlook.com"
y "clave_de_outlook_123"
por las credenciales correspondientes a tu cuenta de Outlook desde la cual quieres enviar el correo electrónico.
Para una explicación general de la estructura de este código y de cómo incluir código HTML y archivos adjuntos, véase nuestro artículo sobre los módulos email
y smtplib
: Enviar correo electrónico en HTML y con adjuntos vía SMTP.
Curso online 👨💻
¡Ya lanzamos el curso oficial de Recursos Python en Udemy!
Un curso moderno para aprender Python desde cero con programación orientada a objetos, SQL y tkinter
en 2024.
Consultoría 💡
Ofrecemos servicios profesionales de desarrollo y capacitación en Python a personas y empresas. Consultanos por tu proyecto.
Konstant says:
Buenas tardes:
Al ejecutar el script desde visual studio, me da el fallo:
No module named ‘email.message’; ‘email’ is not a package
Sabes a que se debe tal error.
Muchas gracias por tu ayuda.
Saludos.
Recursos Python says:
Hola. ¿Por casualidad tu archivo o carpeta se llama email? En ese caso debería tener otro nombre para evitar conflictos con la librería estándar.
Saludos
Ivan says:
Buenas, al enviar el mail siempre entra como spam a la cuenta destinataria. Que puedo hacer?
Recursos Python says:
Hola, Ivan. Lamentablemente, no hay nada que se pueda hacer en el código para evitar eso. Depende de muchos otros factores ajenos a Python.
Saludos