Програмування з Thunderbird
Читання повідомлень
Mozilla Thunderbird — це відкритий крос‑платформний клієнт електронної пошти, розроблений Mozilla Foundation. Він зберігає листи у власній файловій структурі, керуючи індексами повідомлень та підпапками за допомогою власних форматів файлів. Aspose.Email може працювати зі структуруми сховища пошти Thunderbird. Клас MboxrdStorageReader дозволяє розробникам читати повідомлення з файлу сховища пошти Mozilla Thunderbird. У цій статті показано, як читати повідомлення зі сховища пошти Thunderbird:
- Відкрийте файл сховища Thunderbird
- Створіть екземпляр класу MboxrdStorageReader і передайте вищезгаданий потік конструктору.
- Викличте read_next_message() щоб отримати перше повідомлення.
- Використовуйте ту ж функцію read_next_message() у циклі while, щоб прочитати всі повідомлення.
- Закрийте всі потоки.
Наведений фрагмент коду показує, як прочитати всі повідомлення зі сховища пошти Thunderbird.
Отримання властивостей повідомлення
Для читання та отримання інформації з файлу Mbox Aspose.Email надає MboxStorageReader клас для створення об’єкта‑читача для файлу Mbox та MboxLoadOptions клас для завантаження файлу. Наступні властивості MboxMessageInfo клас можна використовувати для доступу та відображення конкретних деталей повідомлення:
- ‘date’ — отримує дату повідомлення.
- ‘from_address’ — отримує адресу відправника.
- ‘subject’ — отримує тему повідомлення.
- ’to’ — отримує колекцію адрес, що містить отримувачів повідомлення.
- ‘cc’ — отримує колекцію адрес, що містить CC‑отримувачів.
- ‘bcc’ — отримує колекцію адрес, що містить BCC‑отримувачів повідомлення.
Наступний приклад коду демонструє використання цих властивостей для читання та витягнення інформації про повідомлення з 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}")
Витяг повідомлень з MBOX за ідентифікаторами
Щоб читати повідомлення з MBOX‑файлу, Aspose.Email надає метод ‘create_reader()’ класу MboxStorageReader клас для створення об’єкта-читача для файлу. Він приймає ім’я файлу та MboxLoadOptions як аргументи, що дозволяє користувачеві завантажити MBOX‑файл з конкретними параметрами за потреби.
Для витягування повідомлень використовуються такі методи та властивості:
- метод ’enumerate_message_info()’ класу MboxStorageReader клас — ітерує кожне повідомлення у файлі MBOX.
- метод ’extract_message()’ класу MboxStorageReader клас — витягує кожне повідомлення за його Entry ID.
- властивість ’entry_id’ класу MboxMessageInfo клас — отримує ідентифікатор запису.
Нарешті, повідомлення конвертується у формат EML за допомогою EmlLoadOptions.
Нижче наведений приклад коду демонструє використання цих можливостей для читання та витягнення повідомлень з 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())
Налаштування параметрів завантаження при читанні повідомлень з MBOX
З Aspose.Email EmlLoadOptions клас, ви можете вказати додаткові параметри під час завантаження MailMessage у форматі Eml. Як приклад, можна встановити опцію збереження TNEF‑вкладень під час завантаження файлу EML за допомогою властивості ‘preserve_tnef_attachments’ класу EmlLoadOptions клас.
Ви можете прочитати наступне електронне повідомлення з mbox‑файлу, використовуючи зазначені параметри завантаження, за допомогою методу ‘read_next_message’ класу MboxStorageReader клас і конвертуйте файл у формат PST за допомогою методу ‘mbox_to_pst’ класу MailStorageConverter клас .
Нижче наведений приклад коду демонструє використання цих методів і властивостей для роботи з файлами сховища пошти, включаючи читання повідомлень у форматі mbox, збереження TNEF‑вкладень та конвертацію повідомлень з mbox у формат 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")
Встановлення бажаного кодування тексту під час завантаження MBOX‑файлів для читання
Ви можете вказати кодування тексту, яке буде використано під час завантаження MBOX‑файлу. Властивість ‘preferred_text_encoding’ доступна для MboxLoadOptions клас встановлює додаткову опцію і забезпечує коректне читання та обробку повідомлення з закодованим вмістом.
Наступний фрагмент коду показує, як використати цю функцію в проєкті:
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()
Конвертація MBOX у PST із збереженням або видаленням підпису
Щоб видалити підпис з файлу під час конвертації, встановіть властивість MboxToPstConversionOptions.remove_signature у true.
Наступний приклад коду демонструє, як використати цю властивість:
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)
Запис повідомлень
Клас MboxrdStorageWriter забезпечує можливість запису нових повідомлень у файл сховища пошти Thunderbird. Щоб записати повідомлення:
- Відкрийте файл сховища Thunderbird у FileStream.
- Створіть екземпляр класу MboxrdStorageWriter і передайте вищезгаданий потік конструктору.
- Підготуйте нове повідомлення, використовуючи клас MailMessage.
- Викличте метод write_message() і передайте створений екземпляр MailMessage, щоб додати повідомлення до сховища Thunderbird.
- Закрийте всі потоки.
Наведений фрагмент коду показує, як записувати повідомлення у сховище пошти Thunderbird.
Отримання загальної кількості повідомлень з файлу MBox
Клас MboxrdStorageReader забезпечує можливість читати кількість елементів, які доступні у файлі MBox. Це можна використати для розробки застосунків, що показують прогрес виконання під час обробки такого файлу.