Enviar correo electrónico en Python
Najwa Riyaz
12 octubre 2021
Para enviar un correo electrónico usando Python, use las siguientes funciones de la biblioteca smtplib
.
SMTP(SMTP_SERVER, SMTP_PORT)
- crea una sesión SMTP según el servidor SMTP y los detalles del puerto SMTP.starttls()
- para iniciar el TLS para la configuración de seguridad.login(SMTP_USERNAME, SMTP_PASSWORD)
- para proporcionar los detalles de autenticación del remitente del correo electrónico.sendmail(EMAIL_FROM, EMAIL_TO, the_message)
- para enviar el mensaje del Remitente al Receptor.quit()
para salir de la sesión SMTP.
A continuación, se muestra un ejemplo que demuestra el envío de correo a través del servidor SMTP de Gmail.
import smtplib
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587
SMTP_USERNAME = "sender_username_here@gmail.com"
SMTP_PASSWORD = "sender_password_here"
EMAIL_FROM = "sender_username_here@gmail.com"
EMAIL_TO = "receiver_username_here@gmail.com"
EMAIL_SUBJECT = "Attention:Subject here"
EMAIL_MESSAGE = "The message here"
s = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
s.starttls()
s.login(SMTP_USERNAME, SMTP_PASSWORD)
message = "Subject: {}\n\n{}".format(EMAIL_SUBJECT, EMAIL_MESSAGE)
s.sendmail(EMAIL_FROM, EMAIL_TO, message)
s.quit()
La salida puede tener el siguiente aspecto según la conexión construida en ese punto de su sistema:
(221, b"2.0.0 closing connection t12sm4676768pfc.133 - gsmtp")
Como resultado, se envía el correo electrónico. El receptor recibe el mensaje con éxito.
Nota:
- En el caso de Gmail, proporcione los siguientes detalles de SMTP:
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587
Además, la siguiente configuración debe estar habilitada en Gmail antes de ejecutar el código.
https://myaccount.google.com/lesssecureapps
- En el caso de Yahoo Mail, proporcione los siguientes detalles de SMTP:
SMTP_SERVER = "smtp.mail.yahoo.com"
SMTP_PORT = 587
Además, genere una contraseña de la aplicación
de Yahoo antes de ejecutar el código. Consulte el enlace a continuación.
https://help.yahoo.com/kb/generate-separate-password-sln15241.html
- Del mismo modo, si desea utilizar cualquier otro proveedor de correo, utilice sus respectivos detalles y requisitos previos del servidor SMTP.