Обробка TNEF‑вкладень у електронних листах

Листи, що містять TNEF‑вкладення

Transport Neutral Encapsulation Format (TNEF) — це пропрієтарний формат вкладень електронної пошти, що використовується Microsoft Outlook та Microsoft Exchange Server. API Aspose.Email дозволяє читати листи, які містять TNEF‑вкладення, та змінювати їхній вміст. Після цього лист можна зберегти як звичайне повідомлення або у тому ж форматі, зберігаючи ці вкладення. У цій статті показані різні приклади коду для роботи з листами, що містять TNEF‑вкладення. Також продемонстровано, як створювати TNEF‑файли EML з MSG‑файлів Outlook.

Визначення TNEF‑вкладень у листі

Наведений нижче фрагмент коду показує, як визначити, чи містить лист TNEF‑вкладення:

from aspose.email import MailMessage

mail = MailMessage.load(data_dir + "message.eml")
is_tnef = mail.original_is_tnef

Читання листів зі збереженням TNEF‑вкладень

Наведений нижче фрагмент коду показує, як прочитати повідомлення та зберегти TNEF‑вкладення.

from aspose.email import MailMessage, SaveOptions, EmlLoadOptions, MessageFormat, FileCompatibilityMode

options = EmlLoadOptions()
# This will Preserve the TNEF attachment as it is, file contains the TNEF attachment
options.preserve_tnef_attachments = True

eml = MailMessage.load(data_dir + "message.eml", options)
for attachment in eml.attachments:
    print(attachment.name)

Конвертація MSG у TNEF

MSG‑файли Outlook іноді містять інформацію, таку як таблиці та стилі тексту, які можуть бути пошкоджені при конвертації в EML. Створення TNEF‑повідомлень з таких MSG‑файлів дозволяє зберегти форматування та навіть надсилати такі повідомлення через поштові клієнти, зберігаючи форматування. The convert_as_tnef властивість використовується для досягнення цього. Наведений нижче фрагмент коду показує, як створити TNEF‑лист з MSG.

from aspose.email.mapi import MapiMessage, MailConversionOptions, OutlookMessageFormat

mapi_msg = MapiMessage.from_file(data_dir + "message.msg")

mail_conversion_options = MailConversionOptions()
mail_conversion_options.convert_as_tnef = True

message = mapi_msg.to_mail_message(mail_conversion_options)

Створення TNEF‑листа

Наведений нижче приклад коду можна використати для створення листа у форматі TNEF:

  1. Налаштуйте параметри файлу за допомогою the MsgLoadOptions клас.
  2. Забезпечте збереження TNEF‑вкладень у листі під час завантаження файлу, встановивши options.preserve_tnef_attachments на True.
  3. Використайте MailMessage.load(eml_file_name, options) метод для завантаження вхідного файлу листа з одночасним застосуванням раніше налаштованих параметрів. Це особливо забезпечує збереження TNEF‑пов’язаної інформації (наприклад, вкладень або пропрієтарних форматів Microsoft Outlook) у завантаженому листі.
from aspose.email import MailMessage, SaveOptions, MsgLoadOptions, MessageFormat, FileCompatibilityMode

options = MsgLoadOptions()
# The PreserveTnefAttachments option with MessageFormat.Msg will create the TNEF eml.
options.preserve_tnef_attachments = True

eml = MailMessage.load(eml_file_name, options)

Виявлення TNEF‑повідомлень

Наведений нижче фрагмент коду показує, як виявити, чи повідомлення є TNEF. The original_is_tnef властивість MailMessage об’єкт перевіряється, щоб визначити, чи був лист спочатку у форматі TNEF (Transport Neutral Encapsulation Format). Якщо is_tnef дає True, це означає, що лист містить кодування TNEF, що зазвичай трапляється у листах, створених у Microsoft Outlook або Exchange.

from aspose.email import MailMessage

mail = MailMessage.load(data_dir + "message.eml")
is_tnef = mail.original_is_tnef