広く使用されているメールおよびスケジューリングアプリケーションであるMicrosoft Outlookは、コミュニケーションとタスクの管理において重要な役割を果たします。 この記事では、進化したC#ライブラリを使用してOutlookタスクやTo-Doリストを操作する方法を探ります。C#を使用してPOP3、IMAP、EWS、Graph APIまたはPST、MBOX、OLM、TGZなどのさまざまな形式のオフラインメールボックスストレージからメールを取得する方法を発見してください。この記事では、メールの取得に関する貴重なステップバイステップの指示を提供します。個人用フォルダーファイル(.pst)は、コンピュータ上にメッセージやその他のアイテムを保存するOutlookデータファイルです。これは、Outlookで情報が保存される最も一般的なファイルです。一部のOutlookユーザーは、スヌーピングの可能性をゼロにするためにPSTファイルをパスワード保護しておくことを好みます。この記事では、C# .NETでパスワード保護されたPSTファイルを操作する方法を学びます。会話スレッドは、共通のトピックに対するメッセージへの返信のシーケンスです。会話内のメッセージは、階層的または時間的順序など、さまざまな方法で表示できます。メッセージスレッドを表示するために、電子メールアプリケーションはメッセージの返信を特定します。最も一般的な電子メールファイル形式はこの機能を提供しています。
会話スレッドは、読者が会話の全体的な構造を迅速に理解し、会話の特定のポイントを強調し、重要な情報を分析することを可能にします。 この記事では、Aspose.EmailのPST/MAPI機能を使用してメッセージを会話ごとに見つけてグループ化する方法に焦点を当てます。これを実現するために、特定のフォルダー内のメッセージを横断し、会話ごとにグループ化し、それぞれの会話を別のディスクディレクトリに保存するサンプルコードを実装します。
会話スレッドをサポートするために使用されるMAPIプロパティ Outlook PSTファイルを読むためのC# .NET API 会話スレッドによるPST内のメッセージのグループ化 会話スレッドをサポートするために使用されるMAPIプロパティ PST内のメッセージはMAPIプロパティのセットとして保存されているため、メッセージの返信を収集するために関連するMAPIプロパティを定義する必要があります。 これはMicrosoft Docsセクションに記載されています。 ご覧の通り、PidTagConversationIndexプロパティは、メッセージが特定の会話に関連付けられているかどうかを正確に判断することを可能にします。このプロパティはまた、会話スレッド内の相対的なメッセージの位置を示します。PidTagConversationIndexプロパティの詳細についてはこちらをご覧ください。ヘッダーはPidTagConversationIndexプロパティ値の最初の22バイトです。これは、メッセージが特定の会話スレッドに属しているかどうかを判断するためのデータ部分です。
Outlook PSTファイルを読むためのC# .NET API PSTファイルを読むために、Aspose.Email for .NETを使用します。これは、.NETを使用して電子メール処理アプリを実装するための素晴らしいライブラリです。このライブラリを使用すると、さまざまな電子メールファイル形式を簡単に扱うことができます。Aspose.Email for .NETはNuGetからインストールするか、DLLをダウンロードできます。
PM> Install-Package Aspose.Email 会話スレッドによるPST内のメッセージのグループ化 PST内のメッセージを会話ごとにグループ化するには、以下が必要です:
まず、ConversationThreadクラスを作成します。これは、会話内のメッセージをグループ化するためのコンテナです。 次に、会話によるメッセージの検索とグループ化のためのメソッドを作成します。 最後に、会話スレッドを別のディレクトリに保存するメソッドを作成します。 ConversationThreadクラスを作成する 以下のプロパティを持ちます。
Id: 会話インデックスヘッダーの文字列表現(22バイト)。 Messages: 会話スレッド内のメッセージIDのリスト。 会話によるメッセージの検索とグループ化のメソッドを作成する ConversationThreadクラスを作成した後、以下を行うメソッドの作成に焦点を当てることができます:
フォルダー内のすべてのメッセージを通過します。パフォーマンス上の理由から、EnumerateMessagesEntryIdメソッドを使用してメッセージ識別子のみを読み取ります。 各メッセージからExtractPropertyメソッドを使用してPidTagConversationIndexプロパティを抽出します。 PidTagConversationIndexプロパティ値の最初の22バイトが同じメッセージは同じ会話に属します。対応するConversationThreadクラスのインスタンスのMessagesプロパティで表されるリストにメッセージIDを追加します。 ConversationThreadインスタンスのリストを返します。 会話スレッドを別のディレクトリに保存するメソッドを作成する 最後に、会話をディレクトリに保存しましょう。
各ConversationThreadインスタンスに対して、以下を行います:
スレッドトピックの名前で別のディレクトリを作成します。 ConversationThread.Messagesプロパティの識別子を列挙し、各識別子についてExtractMessageメソッドを使用してメッセージを抽出し、Saveメソッドを使用して作成したディレクトリにメッセージを保存します。 無料APIライセンスの取得 評価制限なしでAspose.Email for .NETを使用するには、無料の一時ライセンスを利用できます。
結論 この記事では、PST内で会話に関連するメッセージを検索するためにAspose.Emailを使用する方法を示しました。 PidTagConversationIndexのドキュメントをさらに探索することで、会話メッセージの階層的なソートを追加するなど、実装を複雑にすることもできます。Aspose.Emailについてはドキュメントを参照してください。質問がある場合は、フォーラムに投稿できます。
参照 C# .NETでMS Outlook PSTファイルを読むPST(Personal Storage Table)は、MS Outlook、Exchange、WindowsメッセージングなどのさまざまなMicrosoftプログラムで使用されるストレージファイル形式です。 PSTファイルは、メッセージ、連絡先、カレンダー、イベントなどを保存できます。場合によっては、PSTファイルを解析し、プログラムでそこからデータを抽出する必要があります。これを実現するために、この記事では、C#.NETを使用してMSOutlookPSTファイルを読み取る方法を示します。特に、フォルダーの情報を抽出する方法、電子メールを読む方法、およびPSTファイルから連絡先を取得する方法を学習します。