Thunderbird を使用したプログラミング
メッセージの読み取り
Mozilla Thunderbird は Mozilla Foundation が開発したオープンソースのクロスプラットフォームメールクライアントです。独自のファイル構造でメールを保存し、プロプライエタリ形式でメッセージインデックスやサブフォルダーを管理します。Aspose.Email は Thunderbird のメールストレージ構造と連携できます。MboxrdStorageReader クラスを使用すると、開発者は Thunderbird のメールストレージファイルからメッセージを読み取ることができます。本記事では Thunderbird のメールストレージからメッセージを読み取る方法を示します。
- Thunderbird のストレージファイルを開く
- MboxrdStorageReader クラスのインスタンスを作成し、上記のストリームをコンストラクターに渡します。
- 最初のメッセージを取得するには read_next_message() を呼び出します。
- while ループ内で同じ read_next_message() を使用してすべてのメッセージを読み取ります。
- すべてのストリームを閉じます。
以下のコードスニペットは、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}")
ID による MBOX からのメッセージ抽出
MBOX ファイルからメッセージを読み取るために、Aspose.Email は ‘create_reader()’ メソッドを提供します。 MboxStorageReader クラスはファイル用のリーダーオブジェクトを作成します。ファイル名と MboxLoadOptions 引数として使用でき、必要に応じて特定のオプションで MBOX ファイルをロードできます。
メッセージを抽出するには、以下のメソッドとプロパティを使用します。
- ’enumerate_message_info()’ メソッド MboxStorageReader クラス - MBOX ファイル内の各メッセージを反復処理します。
- ’extract_message()’ メソッド MboxStorageReader クラス - エントリ 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 クラスでは、EML 形式から MailMessage を読み込む際に追加オプションを指定できます。例えば、‘preserve_tnef_attachments’ プロパティを使用して TNEF 添付ファイルを保持するオプションを設定できます。 EmlLoadOptions クラス。
指定したロードオプションを使用して、‘read_next_message’ メソッドで mbox ファイルから次のメールメッセージを読み取れます。 MboxStorageReader クラスの ‘mbox_to_pst’ メソッドを使用してファイルを 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 のメールストレージファイルに新しいメッセージを書き込む機能を提供します。メッセージを書き込むには以下を参照してください。
- FileStream で Thunderbird のストレージファイルを開きます。
- MboxrdStorageWriter クラスのインスタンスを作成し、上記のストリームをコンストラクターに渡します。
- MailMessage クラスを使用して新しいメッセージを作成します。
- write_message() メソッドを呼び出し、上記の MailMessage インスタンスを渡してメッセージを Thunderbird のストレージに追加します。
- すべてのストリームを閉じます。
以下のコードスニペットは、Thunderbird のメールストレージにメッセージを書き込む方法を示しています。
MBox ファイルから総メッセージ数を取得
MboxrdStorageReader クラスは、MBox ファイルで利用可能なアイテム数を読み取る機能を提供します。これにより、ファイル処理中の進捗状況を示すアプリケーションを開発できます。