メールメッセージにおける TNEF 添付ファイルの処理

TNEF 添付ファイルを含むメールメッセージ

Transport Neutral Encapsulation Format(TNEF)は、Microsoft Outlook および Microsoft Exchange Server が使用する独自のメール添付形式です。Aspose.Email API を使用すると、TNEF 添付ファイルを含むメールメッセージを読み取り、その内容を変更できます。その後、メールは通常のメッセージとして、または同じ形式で保存でき、これらの添付ファイルを保持します。本記事では、TNEF 添付ファイルを含むメッセージを扱うためのさまざまなコードサンプルを示します。また、Outlook MSG ファイルから TNEF EML ファイルを作成する方法も紹介します。

メール内の 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 への変換

Outlook の MSG は、テーブルやテキストスタイルなどの情報を含むことがあり、EML に変換すると破損する可能性があります。このような MSG ファイルから TNEF メッセージを作成すると、書式を保持したまま、メールクライアントで送信することも可能です。 convert_as_tnef このプロパティはこれを実現するために使用されます。次のコードスニペットは、MSG から TNEF メールを作成する方法を示しています。

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. ファイルオプションは以下を使用して構成します: 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 かどうかを検出する方法を示しています。 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