Programación con Thunderbird
Leyendo Mensajes
Mozilla Thunderbird es un cliente de correo electrónico de código abierto y multiplataforma, desarrollado por la Fundación Mozilla. Almacena los correos en su propia estructura de archivos, gestionando índices de mensajes y subcarpetas mediante formatos propietarios. Aspose.Email puede trabajar con las estructuras de almacenamiento de correo de Thunderbird. La clase MboxrdStorageReader permite a los desarrolladores leer mensajes del archivo de almacenamiento de correo de Mozilla Thunderbird. Este artículo muestra cómo leer los mensajes del almacenamiento de correo de Thunderbird:
- Abre el archivo de almacenamiento de Thunderbird
- Crea una instancia de la clase MboxrdStorageReader y pasa el stream anterior al constructor.
- Llama a read_next_message() para obtener el primer mensaje.
- Utiliza la misma read_next_message() dentro de un bucle while para leer todos los mensajes.
- Cerrar todos los flujos.
El siguiente fragmento de código le muestra cómo leer todos los mensajes de un almacenamiento de correo de Thunderbird.
Recuperar propiedades del mensaje
Para leer y obtener información de un archivo Mbox, Aspose.Email proporciona el MboxStorageReader clase para crear un objeto lector para el archivo Mbox y el MboxLoadOptions clase para cargar el archivo. Las siguientes propiedades del MboxMessageInfo la clase puede usarse para acceder y mostrar detalles específicos del mensaje:
- ‘date’ - Obtiene la fecha del mensaje.
- ‘from_address’ - Obtiene la dirección del remitente.
- ‘subject’ - Obtiene el asunto del mensaje.
- ’to’ - Obtiene la colección de direcciones que contiene los destinatarios del mensaje.
- ‘cc’ - Obtiene la colección de direcciones que contiene los destinatarios CC.
- ‘bcc’ - Obtiene la colección de direcciones que contiene los destinatarios BCC del mensaje.
El siguiente fragmento de código demuestra el uso de estas propiedades para leer y extraer información de mensajes de un archivo Mbox:
import aspose.email as ae
reader = ae.storage.mbox.MboxStorageReader.create_reader(file_name, ae.storage.mbox.MboxLoadOptions())
for mbox_message_info in reader.enumerate_message_info():
print(f"Subject: {mbox_message_info.subject}")
print(f"Date: {mbox_message_info.date}")
print(f"From: {mbox_message_info.from_address}")
print(f"To: {mbox_message_info.to}")
print(f"CC: {mbox_message_info.cc}")
print(f"Bcc: {mbox_message_info.bcc}")
Extraer mensajes de MBOX por identificadores
Para leer mensajes de un archivo MBOX, Aspose.Email proporciona el método ‘create_reader()’ de la MboxStorageReader clase para crear un objeto lector para el archivo. Toma el nombre del archivo y MboxLoadOptions como argumentos, permitiendo al usuario cargar el archivo MBOX con opciones específicas si es necesario.
Para extraer mensajes, se usan los siguientes métodos y propiedades:
- método ’enumerate_message_info()’ de la MboxStorageReader clase - Itera a través de cada mensaje en el archivo MBOX.
- método ’extract_message()’ de la MboxStorageReader clase - Extrae cada mensaje por su ID de entrada.
- propiedad ’entry_id’ de la MboxMessageInfo clase - Obtiene el identificador de entrada.
Finalmente, el mensaje se convierte al formato EML usando EmlLoadOptions.
El siguiente fragmento de código demuestra el uso de estas funciones para leer y extraer mensajes de un archivo MBOX:
import aspose.email as ae
reader = ae.storage.mbox.MboxStorageReader.create_reader("my.mbox", ae.storage.mbox.MboxLoadOptions())
for mbox_message_info in reader.enumerate_message_info():
eml = reader.extract_message(mbox_message_info.entry_id, ae.EmlLoadOptions())
Configurando las opciones de carga al leer mensajes de MBOX
Con Aspose.Email EmlLoadOptions clase, puedes especificar opciones adicionales al cargar MailMessage desde formato Eml. Por ejemplo, puedes establecer una opción para conservar los adjuntos TNEF al cargar un archivo EML con la propiedad ‘preserve_tnef_attachments’ de la EmlLoadOptions clase.
Puedes leer el siguiente mensaje de correo electrónico del archivo mbox usando las opciones de carga especificadas con el método ‘read_next_message’ de la MboxStorageReader clase y convierte el archivo al formato PST con el método ‘mbox_to_pst’ de la MailStorageConverter clase .
El siguiente fragmento de código demuestra el uso de estos métodos y propiedades para trabajar con archivos de almacenamiento de correo, incluyendo la lectura de mensajes en formato mbox, la conservación de archivos adjuntos TNEF y la conversión de mensajes de mbox a formato pst:
import aspose.email as ae
reader = ae.storage.mbox.MboxrdStorageReader(fileName, ae.storage.mbox.MboxLoadOptions())
# Read messages preserving tnef attachments.
load_options = ae.EmlLoadOptions()
load_options.preserve_tnef_attachments = True
eml = reader.read_next_message(load_options)
ae.storage.MailStorageConverter.MboxMessageOptions(load_options)
# Convert messages from mbox to pst preserving tnef attachments.
pst = ae.storage.MailStorageConverter.mbox_to_pst("Input.mbox", "Output.pst")
Configuración de la Codificación de Texto Preferida al Cargar Archivos Mbox para Lectura
Puedes especificar la codificación de texto a usar al cargar un archivo MBOX. La propiedad ‘preferred_text_encoding’ está disponible para la MboxLoadOptions la clase establece una opción adicional y asegura que un mensaje con contenido codificado se lea y procese correctamente.
El siguiente fragmento de código muestra cómo usar esta función en un proyecto:
import aspose.email as ae
load_options = ae.storage.mbox.MboxLoadOptions()
load_options.preferred_text_encoding = 'utf-8'
reader = ae.storage.mbox.MboxrdStorageReader("sample.mbox", load_options)
message = reader.read_next_message()
Convirtiendo MBOX a PST Conservando o Eliminando una Firma
Para eliminar la firma de un archivo durante el proceso de conversión, establece la propiedad MboxToPstConversionOptions.remove_signature en true.
El siguiente fragmento de código muestra cómo utilizar esta propiedad:
import aspose.email as ae
personalStorage = ae.storage.pst.PersonalStorage.create("target.pst", ae.storage.pst.FileFormatVersion.UNICODE)
conversion_options = ae.storage.MboxToPstConversionOptions()
conversion_options.remove_signature = True
ae.storage.MailStorageConverter.mbox_to_pst( ae.storage.mbox.MboxrdStorageReader("source.mbox", ae.storage.mbox.MboxLoadOptions()), personalStorage, "Inbox", conversion_options)
Escribir mensajes
La clase MboxrdStorageWriter brinda la capacidad de escribir nuevos mensajes en el archivo de almacenamiento de correo de Thunderbird. Para escribir mensajes:
- Abre el archivo de almacenamiento de Thunderbird en FileStream.
- Crea una instancia de la clase MboxrdStorageWriter y pasa el stream anterior al constructor.
- Prepara un nuevo mensaje usando la clase MailMessage.
- Llama al método write_message() y pasa la instancia de MailMessage anterior para agregar el mensaje al almacenamiento de Thunderbird.
- Cerrar todos los flujos.
El siguiente fragmento de código le muestra cómo escribir mensajes en el almacenamiento de correo de Thunderbird.
Obtener el número total de mensajes de un archivo MBox
La clase MboxrdStorageReader proporciona la capacidad de leer la cantidad de elementos disponibles en un archivo MBox. Esto puede usarse para desarrollar aplicaciones que muestren el progreso de la actividad mientras se procesa dicho archivo.