PythonでMSGファイルを解析する方法

PythonでMSGファイルを解析する方法

aspose-email-foss for Python は、Microsoft Office の依存関係なしで Outlook MSG ファイルを読み取るための純粋な Python API を提供します。ファイルを MapiMessage オブジェクトにロードして、すべてのメッセージ データにアクセスします。

ステップバイステップ ガイド

ステップ 1: パッケージをインストールする

pip install aspose-email-foss

Python 3.10以降が必要です。


ステップ 2: MapiMessage クラスをインポート

from aspose.email_foss.msg import MapiMessage

ステップ 3: MSG ファイルをロード

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

不正なファイルの寛容なパースを行うには、strict=False を渡してください:

msg = MapiMessage.from_file("message.msg", strict=False)

ステップ 4: メッセージ プロパティにアクセス

print(f"Subject: {msg.subject}")
print(f"Body: {msg.body}")
print(f"HTML Body: {msg.body_html[:200] if msg.body_html else 'None'}")
print(f"Message Class: {msg.message_class}")

ステップ5:添付ファイルの一覧表示

for att in msg.iter_attachments_info():
    name = att.storage_name
    is_embedded = att.is_embedded_message
    print(f"Attachment: {name}, embedded={is_embedded}")

ステップ 6: 低レベル CFB 構造の検査

from aspose.email_foss.cfb import CFBReader

reader = CFBReader.from_file("message.msg")
print(f"Directory entries: {reader.directory_entry_count}")
for entry in reader.iter_streams():
    print(f"  Stream: {entry}")
reader.close()

一般的な問題と対処法

CFBError 読み込み中

ファイルは有効なCFBコンテナではありません。実際のOutlook MSGファイルであり、EMLではないことを確認してください。

本文は空ですが、HTML本文には内容があります

一部のメッセージはコンテンツをHTMLのみで保存します。msg.bodyNone を返すときに msg.body_html を確認してください。

検証警告

ロードされたファイルのコンプライアンス警告のタプルを見るには、msg.validation_issuesにアクセスしてください。


よくある質問 (FAQ)

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

直接はできません。ライブラリは MSG (CFB) フォーマットを処理します。まず EML コンテンツを EmailMessage オブジェクトに変換し、次に MapiMessage.from_email_message() を使用してください。

読み込み時にすべての添付データがメモリに読み込まれますか?

いいえ。添付メタデータはオンデマンドで読み取られます。軽量イテレーションには iter_attachments_info() を使用してください。

スレッドセーフですか?

MapiMessageインスタンスは独立しています。別々のインスタンスからの同時読み取りは安全です。

 日本語