Enviar correo electrónico en Python

Najwa Riyaz 12 octubre 2021
Enviar correo electrónico en Python

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.