Exchange Server でメールの送受信と整理
EWS を使用して Exchange メールボックス情報を取得
Aspose.Email は、Microsoft Exchange からメールボックスの詳細を取得するために IEWSClient クラスです。呼び出すことで GetMailboxInfo() メソッドを使用すると、クライアントは ExchangeMailboxInfo Mailbox、Inbox、Drafts、Sent Items などの便利なフォルダー URI を含むオブジェクトです。
Exchange Web Services (EWS) で Exchange Server に接続するには、次を使用します IEWSClient クラス。このクラスは EWS を使用して Exchange Server に接続し、アイテムを管理します。
以下のコードスニペットは、Exchange Web Services を使用して メールボックス情報を取得する方法を示しています。
EWS を使用したメール送信
Exchange でメールを送信するには、以下を呼び出します IEWClient->Send() メソッドです。引数として MailMessage オブジェクトを使用し、EWS でサーバーへ直接送信します。
以下のコードサンプルは、Aspose.Email for C++ を使用して Exchange Web Services (EWS) 経由で Exchange Server へ HTML メールメッセージを送信する方法を示しています。Exchange への接続確立、送信者・受信者・件名・HTML コンテンツを持つメールメッセージの作成、そして EWS クライアントの Send メソッドでメッセージを送信する完全なプロセスが示されています。
他ユーザーのメールボックスからメールを読む
Exchange Server の一部のアカウントは複数のメールボックスへアクセスできる権限を持ち、同じ Exchange Server 上で複数のメールアカウントを持つユーザーもいます。いずれの場合も、Aspose.Email を使用すれば他のユーザーのメールボックスにアクセスできます。API は、次のものを使用して他のメールボックスのフォルダーやメールにアクセスするメカニズムを提供します IEWSClient クラス。この機能はオーバーロードされたものを使用して実現できます GetMailboxInfo() メソッドで、ユーザーのメールアドレスをパラメータとして提供します。
以下のコードスニペットは、これを使用してメールを読み取る方法を示しています IEWSClient クラス。
EWS を使用してメッセージを一覧表示
Aspose.Email for C++ を使用すると、Exchange Server のメールボックスからメッセージメタデータを取得できます IEWSClient。EWS ベースの ListMessages API を使用すると、任意のフォルダーからメッセージを一覧表示し、メタデータを閲覧し、大容量メールボックス向けにページングを実装できます。
受信トレイからメッセージを一覧表示
使用する ListMessages 受信トレイや任意のフォルダーから、件名、送信者、受信者、メッセージ ID などの基本的なメッセージ情報を取得するために。
以下のコードサンプルは、Exchange Server のすべてのメッセージを一覧表示し、基本情報を表示する方法を示しています。
- インスタンスを作成する IEWSClient.
- 呼び出す ListMessages 対象フォルダーの URI を使用して。
- 繰り返し処理 ExchangeMessageInfoCollection.
任意のフォルダーからメッセージを一覧表示
ListMessages 有効なフォルダー URI を受け取り、削除済みアイテム、ドラフト、送信済みアイテム、またはカスタムフォルダーからアイテムを一覧表示できます。以下を使用してください IEWSClient->get_MailboxInfo->xxxFolderUri 異なるフォルダーの URI を取得するプロパティです。
以下のコードサンプルは、異なる Exchange Server フォルダー URI にアクセスし、指定フォルダーからメッセージを取得する方法を示しています。
メッセージ一覧のページング
大容量メールボックスの場合は、以下を使用してください ListMessagesByPage メッセージを小さなブロックで読み込むために。
以下のコードサンプルは、Exchange Server の受信トレイから大量のメッセージを取得するためのページング実装方法を示しています。
- まず、サーバー上に複数のテストメッセージを作成します。
- 次に、以下を使用します ListMessagesByPage メッセージを小さなバッチ(この場合はページごとに 5 件)で取得するメソッドで、最後のページに達するまで全ページを反復処理します。
- 最後に、コードは全ページにわたるアイテム総数をカウントして、すべてのメッセージが正常に取得されたことを検証します。
メッセージタイプ情報の取得
使用する ExchangeMessageInfo->MessageInfoType 基になる Exchange メッセージタイプ(例: メール、会議招待など)を判定するために。
以下のコードサンプルは、Exchange Server に接続し、削除済みアイテム フォルダーからメッセージタイプ情報を取得する方法を示しています。
Exchange Web Services (EWS) を使用したメッセージ保存
Aspose.Email を使用すると、Exchange Server のメールボックスからメッセージを取得し、EML、メモリストリーム、MSG など複数の形式で保存できます。以下の例は、メッセージ情報を取得し、次のものを使用してメッセージを保存する方法を示します IEWSClient API。
EML ファイルとしてメッセージを保存
メールボックスのメッセージを EML ファイルとして保存するには:
- 作成します IEWSClient 有効な認証情報を使用したインスタンス。
- 呼び出す ListMessages() 取得するために ExchangeMessagesInfoCollection.
- コレクションをループして各メッセージのユニーク URI にアクセスします。
- 呼び出す SaveMessage() 各メッセージを EML 形式でディスクに保存するために。
以下のコードサンプルは、Aspose.Email for C++ を使用して、Exchange Server の受信トレイからメールメッセージを個別の EML ファイルとしてローカルに保存する方法を示しています。
メッセージをメモリストリームに保存
ディスクに書き込む代わりに、メッセージをメモリストリームに保存できます。データベースにメールを保存したり、メモリ上で処理したりするのに便利です。
以下のコードサンプルは、Exchange Server の受信トレイからメールメッセージをメモリストリームに保存する方法を示しています。
MSG形式でメッセージを保存
メッセージを MSG として保存するには:
- メッセージを取得するには FetchMessage()、これは MailMessage.
- 呼び出す MailMessage::Save() MSG 保存オプションを使用して。
以下のコードサンプルは、Exchange Server の受信トレイからメールメッセージを取得し、Outlook MSG 形式のファイルとして保存する方法を示しています。
メッセージ URI によるメッセージ詳細の取得
メッセージのユニーク URI のみが利用可能な場合でも、完全な ExchangeMessageInfo オブジェクト。 IEWSClient::ListMessages() オーバーロードはメッセージ ID(URI)のリストを受け取り、 ExchangeMessageInfoCollection. メッセージ URI を外部で保存または受信し、フルメッセージを取得せずにメタデータ(件名、送信者、サイズなど)を読み込む必要がある場合にこの機能を使用します
以下のコードサンプルは、Exchange Server 上に複数のメールメッセージを作成し、ユニークな識別子を使用してそれらのメッセージ情報を取得する方法を示しています。
完全なメッセージ内容を取得
ListMessages() 要約情報(件名、送信者、ID)を返します。フルメッセージ内容(本文、ヘッダー、添付ファイル)をロードするには、次を使用してください FetchMessage().
以下のコードサンプルは、Exchange Server の受信トレイから完全なメッセージを取得し、添付ファイル情報を抽出する方法を示しています。
- 作成します IEWSClient インスタンス。
- 呼び出す ListMessages() 基本的なメッセージメタデータを取得するために。
- 各メッセージの UniqueUri を抽出します。
- 呼び出す FetchMessage() 完全なメッセージ詳細を取得するために。
メッセージサイズの取得(フルメッセージをダウンロードせずに)
Aspose.Email は、メール全体を取得せずにメッセージサイズ情報を提供します。その手段は ExchangeMessageInfo::Size プロパティです。
これは次のような用途に便利です:
- メールボックス統計
- クォータ計算
- ダウンロード前に大きなメッセージをフィルタリング
以下のコードサンプルは、Exchange Server の受信トレイからサイズを含むメッセージメタデータを一覧表示する方法を示しています。
Exchange パブリックフォルダーからメールをダウンロード
Exchange のパブリックフォルダーは、ユーザー間で共有メッセージを保存できます。
Aspose.Email IEWSClient これらのフォルダーとそこに保存されたメッセージに対して、以下の操作が可能です:
- パブリックフォルダーを一覧表示
- サブフォルダーを再帰的に参照
- メッセージをダウンロードし、保存する(例: MSG ファイルとして)
注: Microsoft Exchange Server 2007 以降が必要です。以前のバージョンは EWS をサポートしていません
以下のコードサンプルは、Exchange Server 上のすべてのパブリックフォルダーとそのサブフォルダーからメッセージを再帰的にダウンロードし、ローカルに Outlook MSG ファイルとして保存する方法を示しています。
Exchange フォルダー間でメッセージを移動
次のものを使用して、1 つの Exchange フォルダーから別のフォルダーへメッセージを移動できます IEWSClient::MoveItem メソッドです。要件は以下の通り:
- 移動するメッセージのユニーク URI
- 宛先フォルダーのユニーク URI
以下のコードサンプルは、内容基準に基づき、Exchange Server の受信トレイから特定のメールメッセージをフィルタリングして別フォルダーへ移動する方法を示しています
- EWS 認証情報を使用して Exchange Server に接続
- メールボックス情報(フォルダー URI)を取得
- 受信トレイからすべてのメッセージを一覧表示
- 各メッセージを反復処理
- 件名に "process this message" が含まれるか確認
- 一致するメッセージを削除済みアイテム フォルダーへ移動
- 移動された各メッセージの確認を出力
Exchange フォルダーからメッセージを削除
フォルダーからメールメッセージを削除するには、以下を利用できます。 IEWSClient->DeleteMessage メソッドです。メッセージの一意な URI をパラメータとして受け取ります。
以下のコードサンプルは、件名基準に基づき、Exchange Server の受信トレイから特定のメールメッセージをフィルタリングして削除する方法を示しています
- 受信トレイのメッセージを反復処理
- いくつかの条件に基づいてメッセージを処理します(この例では、メッセージの件名にキーワードがあるかを検出します)。
- 一致するメッセージを削除
メッセージを別の Exchange フォルダーへコピー
使用する IEWSClient::CopyItem メッセージを別フォルダーに複製します。オーバーロード版は新しく作成されたコピーの URI を返します
以下のコードサンプルは、Exchange Server 上にメールメッセージを作成し、別のフォルダーへコピーする方法を示しています