Knowledgebase

Enviar un correo electrónico con Python [Con adjunto] - Nuevo tutorial

Aprenda a enviar correos electrónicos fácilmente con Python usando la API de Aspose . Con la biblioteca Aspose.Email for Python via .NET puede crear, convertir, enviar, recibir o manipular mensajes de correo, incluidos MSG , PST , EML , EMLX y muchos más formatos de archivo.

Enviar un correo electrónico con Python

Aspose.Email for Python via .NET es una API robusta y potente para programar correos electrónicos, que permite crear, manipular y convertir formatos comunes de mensajes sin preocuparse por la complejidad de la ejecución del formato subyacente. Es una biblioteca de clases fácil de usar, diseñada para ofrecer un componente de programación de correo electrónico sobresaliente y fiable. Aspose.Email for Python ahorra tiempo y esfuerzo al permitir codificar rápidamente el manejo complejo de archivos de mensajes en sus aplicaciones.

Nuestra API puede usarse para realizar una variedad de tareas en aplicaciones y puede integrarse con cualquier tipo de aplicación. Proporcionamos ejemplos de código para que los desarrolladores se pongan en marcha rápidamente.

Aspose.Email for Python via .NET características:

• Conversión y renderizado de formatos de correo electrónico
• Envío y recepción de formatos de correo comunes, incluidos los adjuntos
• Descarga de correo desde servidores IMAP y POP3
• Manipulación (creación y actualización) de tareas usando iCalendar
• Operación con archivos de almacenamiento de mensajes
• Operación con adjuntos de correo electrónico
• Manipulación de reuniones o citas compatibles con iCalendar
• Soporte TLS y SSL
• Adjuntos TNEF

Formatos de archivo compatibles:

MSG - Formato de Microsoft Outlook y Exchange para almacenar mensajes de correo, citas y tareas similares
PST - Archivos de almacenamiento personal de Outlook para almacenar correos, calendarios, contactos y otros formatos de archivo
OST - Datos del buzón del usuario en la máquina local después del registro con Exchange Server y Microsoft Outlook
OFT - Plantillas de mensaje de Microsoft Outlook
EML - Mensajes de correo guardados con Outlook o aplicaciones similares relevantes
EMLX - Archivo de texto desarrollado e implementado por Apple
MBOX - Utilizado para la recopilación de mensajes de correo electrónico
ICS - Formato de archivo iCalendar para compartir eventos y programar tareas vía correo electrónico
VCF - Formato de archivo para tarjetas de presentación electrónicas y almacenamiento de información de contactos
HTML - Lenguaje de marcado de hipertexto para páginas web y visualización en navegadores
MHTML - Formato de archivo de archivo que contiene el contenido de una página web

Crear y establecer el contenido del correo con Python

Crear mensaje de correo

Con la clase MailMessage los desarrolladores pueden crear un nuevo mensaje de correo. Esta clase representa un mensaje de correo. Propiedades como From, To, Subject y Body pueden añadirse fácilmente al mensaje creado.

Realizaremos los siguientes pasos para crear un nuevo mensaje de correo:

  1. Crear una instancia de la clase MailMessage
  2. Establecer las propiedades del mensaje de correo
  3. Guardar los mensajes en diferentes formatos, como EML, MSG y MHTML

El fragmento de código a continuación muestra cómo crear un nuevo correo con distintas propiedades:
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
eml = ae.MailMessage()
eml.subject = "New MailMessage created with Aspose.Email for Python"
eml.html_body = "<b>This line is in bold </b> while this is normal text"
eml.from_address = "from@domain.com"

eml.to.append(ae.MailAddress("to1@domain.com", "Recipient 1"))
eml.to.append(ae.MailAddress("to2@domain.com", "Recipient 2"))

eml.cc.append(ae.MailAddress("cc1@domain.com", "Recipient 3"))
eml.cc.append(ae.MailAddress("cc2@domain.com", "Recipient 4"))

#Save generated EML in different formats to disc
eml.save(dataDir + "CreateNewMailMessage_out.eml")
eml.save(dataDir + "CreateNewMailMessage_out.msg", ae.SaveOptions.default_msg_unicode)
eml.save(dataDir + "message_out.msg", ae.SaveOptions.default_msg)
eml.save(dataDir + "message_out.mhtml", ae.SaveOptions.default_mhtml)
eml.save(dataDir + "message_out.html", ae.SaveOptions.default_html)

Establecer el cuerpo HTML del mensaje

Con HtmlBody especificamos el contenido HTML del cuerpo del mensaje. El fragmento de código a continuación muestra cómo establecer el cuerpo HTML:
# For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
# Declare message as MailMessage instance
eml = ae.MailMessage()

# Specify HtmlBody
eml.html_body = "<html><body>This is the HTML body</body></html>"

Establecer texto alternativo en el mensaje de correo

La clase AlternateView especifica copias de un mensaje de correo en diferentes formatos, y posee dos propiedades:

• LinkedResources, usado al renderizar; las URL dentro del contenido del correo se comparan y resuelven contra las URL en el Content Link de cada objeto LinkedResources en la colección LinkedResources
• BaseUri, usado por el lector de correo para resolver URL relativas dentro del cuerpo

El fragmento de código de ejemplo se muestra a continuación:
# For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
# Declare message as MailMessage instance
eml = ae.MailMessage()

# Creates AlternateView to view an email message using the content specified in the //string
alternate = AlternateView.create_alternate_view_from_string("Alternate Text")

# Adding alternate text
eml.add_alternate_view(alternate)

Agregar un adjunto a un correo

Seguiremos los siguientes pasos para añadir un adjunto a un correo:

  1. Crear una instancia de las clases MailMessage y Attachment
  2. Cargar el adjunto en la instancia Attachment
  3. Añadir la instancia Attachment a la instancia de la clase MailMessage

El fragmento de código a continuación muestra un ejemplo de cómo agregar un adjunto a un correo:
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
# Create an instance of MailMessage class
message = MailMessage("sender@domain.com", "receiver@domain.com")

# Load an attachment
attachment = Attachment(dataDir + "1.txt");

# Add Multiple Attachment in instance of MailMessage class and Save message to disk
message.attachments.append(attachment);
message.add_attachment(Attachment(dataDir + "1.jpg"))
message.add_attachment(Attachment(dataDir + "1.doc"))
message.add_attachment(Attachment(dataDir + "1.rar"))
message.add_attachment(Attachment(dataDir + "1.pdf"))
message.save(dataDir + "AddEmailAttachments_out.msg", SaveOptions.default_msg_unicode)

Enviar un correo usando Python

Aspose.Email for Python permite enviar correos mediante servidores SMTP, POP3 e IMAP. Puede iniciar sesión fácilmente en servidores POP3 con sus credenciales (nombre de usuario y contraseña) o autenticación APOP para realizar operaciones como ver el tamaño del buzón y el número de mensajes, recuperar el mensaje completo o solo su encabezado, eliminar mensajes del servidor, así como ejecutar comandos básicos de POP3.

Aspose.Email for Python también soporta el protocolo IMAP, incluidos sus comandos, autenticación, selección, creación, eliminación, consulta de carpetas, guardado de mensajes, obtención, eliminación y manipulación de etiquetas.

Enviar mensajes con cliente SMTP

Para enviar un mensaje de correo con Python, seguiremos estos pasos:

  1. Crear una instancia de la clase MailMessage
  2. Especificar las direcciones de correo del remitente y del destinatario en la instancia MailMessage
  3. Especificar el contenido TextBody
  4. Crear una instancia de la clase SmtpClient y enviar el mensaje

El siguiente fragmento de código muestra cómo enviar un correo de texto con Python:
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
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"))

#Send using Smtp Client
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO

client.send(eml)

Si necesita ayuda con su proyecto, siempre puede contactar a nuestros expertos de Consultoría paga . Nuestro equipo trabajará con usted para encontrar la mejor solución para su proyecto, implementarla según corresponda y brindarle el mayor valor.
Puede confiar en nosotros para su crecimiento y desarrollo futuros.