Enviar correos electrónicos en Python

Los correos electrónicos automatizados se utilizan ampliamente para enviar notificaciones u otros mensajes a los suscriptores. Además, se activan varios correos electrónicos en función de las acciones o el comportamiento de los usuarios. Para implementar la automatización del correo electrónico, este artículo cubre cómo crear y enviar correos electrónicos usando SMTP en Python.

Biblioteca de Python para crear y enviar correos electrónicos a través de SMTP

Para crear y enviar correos electrónicos usando SMTP, usaremos Aspose.Email for Python via .NET. Es una poderosa biblioteca de Python que le permite implementar clientes de correo electrónico con muchas funciones. Puede instalar la API desde PyPI usando el siguiente comando.

pip install Aspose.Email-for-Python-via-NET

O bien, puede seguir los pasos a continuación para la instalación manual.

  • Descargue el archivo .whl instalable desde la sección descargas.
  • Desde la línea de comando, use el comando: pip install «FileName> >.whl para instalar la API.
  • Descargue un paquete completo de ejemplos de código fuente de GitHub.

Crear y enviar correos electrónicos a través de SMTP en Python

Los siguientes son los pasos para crear y enviar un correo electrónico a través de SMTP en Python.

  • Crea un objeto de la clase MailMessage.
  • Establezca las direcciones de asunto, cuerpo, remitente y destinatario.
  • Establecer Cc o Bcc (opcional).
  • Cree un nuevo cliente SMTP utilizando la clase SmtpClient y configure el host, el puerto, el nombre de usuario y la contraseña.
  • Establecer opciones de seguridad.
  • Envíe un correo electrónico utilizando el método SmtpClient.send (MailMessage).

El siguiente ejemplo de código muestra cómo crear y enviar correos electrónicos en Python.

# Create email message
eml = ae.MailMessage()
eml.subject = "Message with Plain Text Body"
eml.body = "This is plain text body."
eml.from_address = "from@gmail.com"
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1"))

# Create SMTP Client
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO

# Send email
client.send(eml)

Enviar correos electrónicos con cuerpo HTML en Python

Los siguientes son los pasos para enviar correos electrónicos con cuerpo HTML.

  • Crea un objeto de la clase MailMessage.
  • Configure el cuerpo del correo electrónico utilizando la propiedad MailMessage.body\html.
  • Establezca la propiedad MailMessage.is\body\html en verdadero.
  • Asigne las direcciones del asunto, del remitente y del destinatario.
  • Establecer Cc o Bcc (opcional).
  • Cree un nuevo cliente SMTP utilizando la clase SmtpClient y configure el host, el puerto, el nombre de usuario y la contraseña.
  • Envíe un correo electrónico utilizando el método SmtpClient.send (MailMessage).

El siguiente ejemplo de código muestra cómo enviar correos electrónicos con cuerpo HTML en Python.

# Create email message with HTML body
eml = ae.MailMessage()
eml.subject = "Message with Plain Text Body"
eml.is_body_html = True
eml.html_body = "<html><body>This is the <b>HTML</b>body</body></html>"
eml.from_address = "from@gmail.com"
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1"))

# Create SMTP Client
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO

# Send email
client.send(eml)

Enviar correos electrónicos masivos usando SMTP en Python

Los siguientes son los pasos para enviar correos electrónicos masivos en Python.

  • Cree múltiples mensajes de correo electrónico utilizando la clase MailMessage y configure sus propiedades, como asunto, destinatarios, etc.
  • Cree un objeto de la clase MailMessageCollection.
  • Agregue mensajes de correo electrónico a la colección mediante el método MailMessageCollection.append(MailMessage).
  • Cree un nuevo cliente SMTP utilizando la clase SmtpClient y configure el host, el puerto, el nombre de usuario y la contraseña.
  • Envíe un correo electrónico utilizando el método SmtpClient.send (MailMessageCollection).

El siguiente ejemplo de código muestra cómo enviar correos electrónicos masivos en Python.

# Create multiple email messages
message1 = MailMessage("from@gmail.com", "to@gmail.com", "Sending Bulk Emails using Aspose.Email", "message1, how are you?")
message2 = MailMessage("from@gmail.com", "to@gmail.com", "Sending Bulk Emails using Aspose.Email", "message2, how are you?")
message3 = MailMessage("from@gmail.com", "to@gmail.com", "Sending Bulk Emails using Aspose.Email", "message3, how are you?")

# Add messages to collection
manyMsg =  MailMessageCollection()
manyMsg.append(message1)
manyMsg.append(message2)
manyMsg.append(message3)

# Create SMTP Client
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO

# Send emails
client.send(manyMsg)

Reenviar un mensaje de correo electrónico en Python

Los siguientes son los pasos para reenviar un mensaje de correo electrónico en Python.

  • Cargue el mensaje de correo electrónico en un objeto mediante el método MailMessage.load(String fileName).
  • Establecer la dirección del destinatario.
  • Cree un cliente SMTP utilizando la clase SmtpClient.
  • Reenviar mensaje utilizando el método SmtpClient.forward().

El siguiente ejemplo de código muestra cómo reenviar un mensaje de correo electrónico en Python.

# Load email message to be forwarded
eml = MailMessage.load("Message.eml")

# Set recipient
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1"))

# Send using Smtp Client
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO
client.forward("Recipient1@domain.com", "Recipient2@domain.com", eml)

Obtenga una licencia de API gratuita

Puede solicitar una Licencia temporal gratuita para utilizar la API sin limitaciones de evaluación.

Demo en vivo

Conclusión

En este artículo, ha aprendido a crear y enviar correos electrónicos a través de SMTP en Python. Además, ha visto cómo enviar correos electrónicos masivos con texto sin formato o cuerpo HTML mediante programación. Puede explorar más sobre la API de correo electrónico de Python utilizando la documentación. En caso de que tenga alguna pregunta o consulta, no dude en hacérnosla saber a través de nuestro foro.

Ver también