機能と特長

機能と特長

このページでは、すべての主要機能を網羅しています aspose-email-foss 26.3 動作するPythonの例とともに。.


MSG ファイルの読み取り

MSG ファイルを読み込み、コア プロパティにアクセスします:

from aspose.email_foss.msg import MapiMessage

msg = MapiMessage.from_file("message.msg")

print(f"Subject: {msg.subject}")
print(f"Body: {msg.body}")
print(f"HTML Body: {msg.body_html}")
print(f"Message Class: {msg.message_class}")

MSG ファイルの作成

最初から新しいメッセージを作成します:

from aspose.email_foss.msg import MapiMessage

msg = MapiMessage.create("Meeting Notes", "Please find the notes attached.")
msg.save("new_message.msg")

既存のメッセージに件名と本文を設定します:

msg.subject = "Updated Subject"
msg.body = "Updated body text"
msg.save("updated.msg")

受信者

表示名とタイプを指定して受信者を追加します:

from aspose.email_foss.msg import MapiMessage, RECIPIENT_TYPE_CC

msg = MapiMessage.create("Hello", "Message body")
msg.add_recipient("alice@example.com", display_name="Alice Smith")
msg.add_recipient("bob@example.com", display_name="Bob Jones", recipient_type=RECIPIENT_TYPE_CC)
msg.save("with_recipients.msg")

添付ファイル

バイナリ ファイルの添付を追加します:

with open("report.pdf", "rb") as f:
    data = f.read()

msg.add_attachment("report.pdf", data, mime_type="application/pdf")
msg.save("with_attachment.msg")

MSG メッセージを入れ子の添付として埋め込みます:

inner = MapiMessage.create("Inner Subject", "Inner body")
msg.add_embedded_message_attachment(inner, filename="embedded.msg", mime_type="application/vnd.ms-outlook")
msg.save("with_embedded.msg")

MAPI プロパティ

プロパティ ID による MAPI プロパティの読み書き:

from aspose.email_foss.msg import PropertyId

# Read a property
subject = msg.get_property(PropertyId.SUBJECT)

# Set a property
msg.set_property(PropertyId.SUBJECT, "New Subject")

すべてのプロパティを列挙します:

for prop in msg.iter_properties():
    print(f"Tag: {prop.property_tag:#010x}")

メール変換

MSG(MAPI)とメール(RFC 5322)形式間の変換::

# MSG to email string
email_str = msg.to_email_string()
print(email_str[:500])

# MSG to EmailMessage object
email_msg = msg.to_email_message()

# EmailMessage back to MapiMessage
msg2 = MapiMessage.from_email_message(email_msg)
msg2.save("roundtrip.msg")

低レベル CFB 操作

CFB コンテナ構造を直接読み取る::

from aspose.email_foss.cfb import CFBReader

reader = CFBReader.from_file("message.msg")
print(f"File size: {reader.file_size} bytes")
print(f"Sectors: {reader.fat_sector_count}")
print(f"Entries: {reader.directory_entry_count}")

for entry in reader.iter_storages():
    print(f"Storage: {entry}")

for entry in reader.iter_streams():
    print(f"Stream: {entry}")

reader.close()

CFB ドキュメントを書き込む::

from aspose.email_foss.msg import MsgWriter

data = msg.to_bytes()
with open("output.msg", "wb") as f:
    f.write(data)

ヒントとベストプラクティス

  • 常に呼び出す msg.close() または、読み取りが完了したらコンテキストマネージャを使用してファイルハンドルを解放してください
  • 使用してください msg.validation_issues MSG形式の準拠問題をチェックするために
  • この strict パラメータは MapiMessage.from_file() エラー許容度を制御します — 設定は False 寛容なパースのために
  • すべての添付データは、処理中にメモリにロードされます from_file() — 使用 att.data バイトに直接アクセスするために; iter_attachments_info() は、すでに生成された添付リストに対する便利なイテレータです
  • 使用 to_email_string() 完全なメールオブジェクトを構築せずに、テキストのプレビューをすばやく行うために

一般的な問題

問題原因修正
CFBError ロード時に有効なCFB/MSGファイルではありませんファイルが実際のOutlook MSGであることを確認してください
ロード後に本文が空です本文はHTMLのみで保存されています確認 msg.body_html 代わりに msg.body
受信者が不足していますMSG には受信者ストレージがありませんMSG 形式では受信者は任意です; 確認 iter_attachments_info()

FAQ

サポートされている MSG 形式のバージョンは何ですか??

このライブラリは CFB v3 および v4 形式の MSG ファイルを読み書きし、Microsoft Outlook と互換性があります。.

EML ファイルを読み取れますか??

直接はできません。ライブラリが MSG 形式を処理します。使用 MapiMessage.from_email_message() RFC 5322 から変換する EmailMessage オブジェクト。.

スレッドセーフはサポートされていますか??

MapiMessage および CFBReader インスタンスは独立しています。別々のスレッドから別々のインスタンスへの同時アクセスは安全です。.


API リファレンス概要

クラス / メソッド説明
MapiMessage高レベルの MSG メッセージ表現
MapiMessage.from_file()MSG ファイルを読み込む
MapiMessage.create()新しい MSG メッセージを作成する
MapiMessage.save()MSG ファイルに保存する
MapiMessage.to_email_message()EmailMessage(RFC 5322)に変換する
MapiMessage.from_email_message()EmailMessage から MSG に変換する
MapiMessage.add_recipient()受信者を追加する
MapiMessage.add_attachment()バイナリ添付ファイルを追加する
MapiAttachmentメッセージの添付ファイル
MapiRecipientメッセージの受信者
MapiPropertyMAPI プロパティ エントリ
CFBReader低レベル CFB コンテナ リーダー
CFBWriter低レベル CFB コンテナ ライター
MsgReader低レベル MSG 構造 リーダー
 日本語