Cargar y guardar mensaje
Detección de formatos de archivo
La API Aspose.Email proporciona la capacidad de detectar el formato de archivo del mensaje proporcionado. El método DetectFileFormat de la clase FileFormatUtil puede usarse para lograr esto. Las siguientes clases y métodos pueden usarse para detectar el formato del archivo cargado.
- Enumeración FileFormatType
- Clase FileFormatInfo
- Clase FileFormatUtil
- Método detect_file_format(stream)
- Método detect_file_format(file_path)
El siguiente fragmento de código le muestra cómo detectar formatos de archivo.
from aspose.email.tools import FileFormatUtil
# Detect file format and get the detected load format
info = FileFormatUtil.detect_file_format(data_dir + "message.msg")
print("The message format is: " + str(info.file_format_type))
Cargando un mensaje con opciones de carga
El siguiente fragmento de código muestra cómo cargar un mensaje con opciones de carga.
from aspose.email import MailMessage, EmlLoadOptions, HtmlLoadOptions, MhtmlLoadOptions, MsgLoadOptions
# Load Eml, html, mhtml, msg, and dat files
mail_message = MailMessage.load(data_dir + "message.eml", EmlLoadOptions())
MailMessage.load(data_dir + "description.html", HtmlLoadOptions())
MailMessage.load(data_dir + "message.mhtml", MhtmlLoadOptions())
MailMessage.load(data_dir + "message.msg", MsgLoadOptions())
# Loading with custom options
eml_load_options = EmlLoadOptions()
eml_load_options.preferred_text_encoding = "utf-8"
eml_load_options.preserve_tnef_attachments = True
MailMessage.load(data_dir + "description.html", eml_load_options)
html_load_options = HtmlLoadOptions()
html_load_options.preferred_text_encoding = "utf-8"
html_load_options.should_add_plain_text_view = True
html_load_options.path_to_resources = data_dir
MailMessage.load(data_dir + "description.html", html_load_options)
Conservando el formato de mensaje incrustado durante la carga
from aspose.email import MailMessage, EmlLoadOptions, HtmlLoadOptions, MhtmlLoadOptions, MsgLoadOptions
from aspose.email.tools import FileFormatUtil
eml_load_options = EmlLoadOptions()
eml_load_options.preserve_embedded_message_format = True
mail = MailMessage.load(data_dir + "message.eml", eml_load_options)
file_format = FileFormatUtil.detect_file_format(mail.attachments[0].content_stream).file_format_type
print("Embedded message file format: " + str(file_format))
Guardar y convertir mensajes
Aspose.Email facilita la conversión de cualquier tipo de mensaje a otro formato. Para demostrar esta característica, el código de este artículo carga tres tipos de mensajes desde el disco y los guarda nuevamente en otros formatos. La clase base SaveOptions y las clases EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions para configuraciones adicionales al guardar MailMessage puede usarse para guardar mensajes en otros formatos. El artículo muestra cómo usar estas clases para guardar un correo de ejemplo como:
- Formato EML.
- Outlook MSG.
- Formato MHTML.
- Formato HTML.
Cargar EML y guardar como EML
El siguiente fragmento de código le muestra cómo cargar un mensaje EML y guardarlo en disco en el mismo formato.
from aspose.email import MailMessage, SaveOptions
# Initialize and Load an existing EML file by specifying the MessageFormat
mail_message = MailMessage.load(data_dir + "message.eml")
mail_message.save(data_dir + "LoadAndSaveFileAsEML_out.eml", SaveOptions.default_eml)
Cargar EML y guardar como EML preservando los límites originales
El siguiente fragmento de código le muestra cómo cargar EML y guardarlo como EML preservando los límites originales.
from aspose.email import MailMessage, EmlSaveOptions, MailMessageSaveType
mail_message = MailMessage.load(data_dir + "message.eml")
# Save as eml with preserved original boundaries
eml_save_options = EmlSaveOptions(MailMessageSaveType.eml_format)
mail_message.save(data_dir + "PreserveOriginalBoundaries_out.eml", eml_save_options)
Guardando como EML Preservando Adjuntos TNEF
El siguiente fragmento de código le muestra cómo guardar como EML preservando los adjuntos TNEF.
from aspose.email import MailMessage, EmlSaveOptions, MailMessageSaveType, FileCompatibilityMode
mail_message = MailMessage.load(data_dir + "message.eml")
# Save as eml with preserved attachment
eml_save_options = EmlSaveOptions(MailMessageSaveType.eml_format)
eml_save_options.file_compatibility_mode = FileCompatibilityMode.PRESERVE_TNEF_ATTACHMENTS
mail_message.save(data_dir + "PreserveTNEFAttachment_out.eml", eml_save_options)
Cargar EML, guardar como MSG
El siguiente fragmento de código te muestra cómo cargar un mensaje EML y convertirlo a MSG utilizando la opción adecuada de SaveOptions.
from aspose.email import MailMessage, SaveOptions, MailMessageSaveType, FileCompatibilityMode
# Initialize and Load an existing EML file by specifying the MessageFormat
eml = MailMessage.load(data_dir + "message.eml")
# Save the Email message to disk in ASCII format and Unicode format
eml.save(data_dir + "AnEmail_out.msg", SaveOptions.default_msg_unicode)
Guardar como MSG con fechas preservadas
El MsgSaveOptions la clase te permite guardar el mensaje de origen como un archivo de Outlook Message (MSG) preservando fechas. El siguiente fragmento de código muestra cómo guardar como MSG con Fechas Preservadas.
from aspose.email import MailMessage, MsgSaveOptions, MailMessageSaveType, FileCompatibilityMode
# Initialize and Load an existing EML file by specifying the MessageFormat
eml = MailMessage.load(data_dir + "message.eml")
# Save as msg with preserved dates
msg_save_options = MsgSaveOptions(MailMessageSaveType.outlook_message_format_unicode)
msg_save_options.preserve_original_dates = True
eml.save(data_dir + "outTest_out.msg", msg_save_options)
Guardar MailMessage como MHTML
Diferentes opciones de MHTML pueden usarse para obtener los resultados deseados. El siguiente fragmento de código le muestra cómo cargar un mensaje EML enMailMessage y lo convierte a MHTML.
from aspose.email import MailMessage, SaveOptions, MailMessageSaveType, FileCompatibilityMode
# Initialize and Load an existing EML file by specifying the MessageFormat
eml = MailMessage.load(data_dir + "message.eml")
eml.save(data_dir + "AnEmail_out.mhtml", SaveOptions.default_mhtml)
Convertir a MHTML con configuraciones opcionales
El MhtSaveOptions la clase proporciona opciones adicionales para guardar mensajes de correo en formato MHTML. El enumerador MhtFormatOptions permite escribir información adicional del correo al MHTML de salida. Los siguientes campos adicionales pueden escribirse:
- NONE - No se especifican configuraciones específicas.
- WRITE_HEADER - Indica que la información del encabezado debe escribirse.
- WRITE_OUTLINE_ATTACHMENTS - Indica que los adjuntos de esquema deben escribirse.
- WRITE_COMPLETE_EMAIL_ADDRESS - Indica que la dirección de correo completa debe escribirse en todos los encabezados de correo.
- NO_ENCODE_CHARACTERS - Indica que no se debe usar codificación de transferencia de caracteres.
- HIDE_EXTRA_PRINT_HEADER - Indica que PageHeader será invisible.
- WRITE_COMPLETE_TO_EMAIL_ADDRESS - Indica que la dirección de correo completa debe escribirse en el encabezado ‘To’.
- WRITE_COMPLETE_FROM_EMAIL_ADDRESS - Indica que la dirección de correo completa debe escribirse en el encabezado ‘From’.
- WRITE_COMPLETE_CC_EMAIL_ADDRESS - Indica que la dirección de correo completa debe escribirse en el encabezado ‘Cc’.
- WRITE_COMPLETE_BCC_EMAIL_ADDRESS - Indica que la dirección de correo completa debe escribirse en el encabezado ‘Bcc’.
- RENDER_CALENDAR_EVENT - Indica que el texto del evento del calendario debe escribirse en el mhtml de salida.
- SKIP_BYTE_ORDER_MARK_IN_BODY - Indica que los bytes de Byte Order Mark (BOM) deben escribirse en el cuerpo.
- RENDER_V_CARD_INFO - Indica que el texto de VCard AlternativeView debe escribirse en el mhtml de salida.
- DISPLAY_AS_OUTLOOK - Indica que el encabezado From se mostrará como en Outlook.
- RENDER_TASK_FIELDS - Indica que los campos específicos de Task deben escribirse en el mhtml de salida.
El siguiente fragmento de código le muestra cómo convertir un archivo EML a MHTML con configuraciones opcionales.
from aspose.email import MailMessage, MhtSaveOptions, MhtFormatOptions, MailMessageSaveType, FileCompatibilityMode
# Load an existing EML file
eml = MailMessage.load(data_dir + "message.eml")
# Save as mht with header
mht_save_options = MhtSaveOptions()
# Specify formatting options required
# Here we are specifying to write header information to output without writing extra print header
# and the output headers should be displayed as the original headers in the message
mht_save_options.mht_format_options = MhtFormatOptions.WRITE_HEADER | MhtFormatOptions.HIDE_EXTRA_PRINT_HEADER | MhtFormatOptions.DISPLAY_AS_OUTLOOK
# Check the body encoding for validity.
mht_save_options.check_body_content_encoding = True
eml.save(data_dir + "outMessage_out.mht", mht_save_options)
Renderizar eventos del calendario al convertir a MHTML
El MhtFormatOptions.RenderCalendarEvent Renderiza los eventos del calendario al MHTML de salida. El siguiente fragmento de código le muestra cómo renderizar los eventos del calendario al convertir a MHTML.
from aspose.email import MailMessage, MhtSaveOptions, MhtFormatOptions, MhtTemplateName, MailMessageSaveType, FileCompatibilityMode
file_name = "message.msg"
# Load the MSG file
msg = MailMessage.load(data_dir + file_name)
# Create MHT save options
options = MhtSaveOptions()
options.mht_format_options = MhtFormatOptions.WRITE_HEADER | MhtFormatOptions.RENDER_CALENDAR_EVENT
# Save the message as MHTML
msg.save(data_dir + "Meeting with Recurring Occurrences.mhtml", options)
Exportando correo a MHT sin imágenes incrustadas
from aspose.email import MailMessage, MhtSaveOptions, MhtFormatOptions, MhtTemplateName, MailMessageSaveType, FileCompatibilityMode
# Load the EML file
eml = MailMessage.load(data_dir + "message.eml")
# Create MHT save options
mht_save_options = MhtSaveOptions()
mht_save_options.skip_inline_images = True
# Save the message as MHTML without inline images
eml.save(data_dir + "EmlToMhtmlWithoutInlineImages_out.mht", mht_save_options)
Exportar correo a MHT con zona horaria personalizada
MailMessage La clase proporciona la propiedad TimeZoneOffset para establecer una zona horaria personalizada al exportar a MHT. El siguiente fragmento de código le muestra cómo exportar un correo a MHT con zona horaria personalizada.
from aspose.email import MailMessage, MhtSaveOptions, MhtFormatOptions, MhtTemplateName, MailMessageSaveType, FileCompatibilityMode
from datetime import timedelta
# Load the EML file
eml = MailMessage.load(data_dir + "message.eml")
# Set the local time for message date
eml.time_zone_offset = timedelta(hours=-8)
# The dates will be rendered by the local system time zone
mht_save_options = MhtSaveOptions()
mht_save_options.mht_format_options = MhtFormatOptions.WRITE_HEADER
eml.save(data_dir + "ExportEmailToMHTWithCustomTimezone_out.mhtml", mht_save_options)
Exportar correo electrónico a EML
El siguiente fragmento de código le muestra cómo exportar el correo a EML.
from aspose.email import MailMessage, SaveOptions
# Load the EML file
msg = MailMessage.load(data_dir + "message.eml")
# Save the Email message as EML
msg.save(data_dir + "ExporttoEml_out.eml", SaveOptions.default_eml)
Guardar mensaje como HTML
El HtmlSaveOptions La clase permite exportar el cuerpo del mensaje a HTML con la opción de guardar recursos incrustados. El siguiente fragmento de código le muestra cómo guardar el mensaje como HTML donde el valor predeterminado de embed_resources es true.
from aspose.email import MailMessage, SaveOptions, HtmlSaveOptions, HtmlFormatOptions
# Load the EML file
message = MailMessage.load(data_dir + "message.eml")
# Save the Email message as HTML
message.save(data_dir + "SaveAsHTML_out.html", SaveOptions.default_html)
# OR
eml = MailMessage.load(data_dir + "message.eml")
options = HtmlSaveOptions()
options.embed_resources = False
options.html_format_options = (
HtmlFormatOptions.WRITE_HEADER
| HtmlFormatOptions.WRITE_COMPLETE_EMAIL_ADDRESS
) # save the message headers to output HTML using the formatting options
eml.save(data_dir + "SaveAsHTML1_out.html", options)
Guardar mensaje como plantilla de Outlook (.oft)
El siguiente fragmento de código le muestra cómo guardar el mensaje como archivo de plantilla de Outlook (.oft).
from aspose.email import MailMessage, SaveOptions
eml = MailMessage("test@from.to", "test@to.to", "template subject", "Template body")
oft_eml_file_name = "EmlAsOft_out.oft"
options = SaveOptions.default_msg_unicode
options.save_as_template = True
eml.save(data_dir + oft_eml_file_name, options)