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 のすべてのメッセージを一覧表示し、基本情報を表示する方法を示しています。

  1. インスタンスを作成する IEWSClient.
  2. 呼び出す ListMessages 対象フォルダーの URI を使用して。
  3. 繰り返し処理 ExchangeMessageInfoCollection.

任意のフォルダーからメッセージを一覧表示

ListMessages 有効なフォルダー URI を受け取り、削除済みアイテム、ドラフト、送信済みアイテム、またはカスタムフォルダーからアイテムを一覧表示できます。以下を使用してください IEWSClient->get_MailboxInfo->xxxFolderUri 異なるフォルダーの URI を取得するプロパティです。

以下のコードサンプルは、異なる Exchange Server フォルダー URI にアクセスし、指定フォルダーからメッセージを取得する方法を示しています。

メッセージ一覧のページング

大容量メールボックスの場合は、以下を使用してください ListMessagesByPage メッセージを小さなブロックで読み込むために。

以下のコードサンプルは、Exchange Server の受信トレイから大量のメッセージを取得するためのページング実装方法を示しています。

  1. まず、サーバー上に複数のテストメッセージを作成します。
  2. 次に、以下を使用します ListMessagesByPage メッセージを小さなバッチ(この場合はページごとに 5 件)で取得するメソッドで、最後のページに達するまで全ページを反復処理します。
  3. 最後に、コードは全ページにわたるアイテム総数をカウントして、すべてのメッセージが正常に取得されたことを検証します。

メッセージタイプ情報の取得

使用する ExchangeMessageInfo->MessageInfoType 基になる Exchange メッセージタイプ(例: メール、会議招待など)を判定するために。

以下のコードサンプルは、Exchange Server に接続し、削除済みアイテム フォルダーからメッセージタイプ情報を取得する方法を示しています。

Exchange Web Services (EWS) を使用したメッセージ保存

Aspose.Email を使用すると、Exchange Server のメールボックスからメッセージを取得し、EML、メモリストリーム、MSG など複数の形式で保存できます。以下の例は、メッセージ情報を取得し、次のものを使用してメッセージを保存する方法を示します IEWSClient API。

EML ファイルとしてメッセージを保存

メールボックスのメッセージを EML ファイルとして保存するには:

  1. 作成します IEWSClient 有効な認証情報を使用したインスタンス。
  2. 呼び出す ListMessages() 取得するために ExchangeMessagesInfoCollection.
  3. コレクションをループして各メッセージのユニーク URI にアクセスします。
  4. 呼び出す SaveMessage() 各メッセージを EML 形式でディスクに保存するために。

以下のコードサンプルは、Aspose.Email for C++ を使用して、Exchange Server の受信トレイからメールメッセージを個別の EML ファイルとしてローカルに保存する方法を示しています。

メッセージをメモリストリームに保存

ディスクに書き込む代わりに、メッセージをメモリストリームに保存できます。データベースにメールを保存したり、メモリ上で処理したりするのに便利です。

以下のコードサンプルは、Exchange Server の受信トレイからメールメッセージをメモリストリームに保存する方法を示しています。

MSG形式でメッセージを保存

メッセージを MSG として保存するには:

  1. メッセージを取得するには FetchMessage()、これは MailMessage.
  2. 呼び出す MailMessage::Save() MSG 保存オプションを使用して。

以下のコードサンプルは、Exchange Server の受信トレイからメールメッセージを取得し、Outlook MSG 形式のファイルとして保存する方法を示しています。

メッセージ URI によるメッセージ詳細の取得

メッセージのユニーク URI のみが利用可能な場合でも、完全な ExchangeMessageInfo オブジェクト。 IEWSClient::ListMessages() オーバーロードはメッセージ ID(URI)のリストを受け取り、 ExchangeMessageInfoCollection. メッセージ URI を外部で保存または受信し、フルメッセージを取得せずにメタデータ(件名、送信者、サイズなど)を読み込む必要がある場合にこの機能を使用します

以下のコードサンプルは、Exchange Server 上に複数のメールメッセージを作成し、ユニークな識別子を使用してそれらのメッセージ情報を取得する方法を示しています。

完全なメッセージ内容を取得

ListMessages() 要約情報(件名、送信者、ID)を返します。フルメッセージ内容(本文、ヘッダー、添付ファイル)をロードするには、次を使用してください FetchMessage().

以下のコードサンプルは、Exchange Server の受信トレイから完全なメッセージを取得し、添付ファイル情報を抽出する方法を示しています。

  1. 作成します IEWSClient インスタンス。
  2. 呼び出す ListMessages() 基本的なメッセージメタデータを取得するために。
  3. 各メッセージの UniqueUri を抽出します。
  4. 呼び出す 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 の受信トレイから特定のメールメッセージをフィルタリングして別フォルダーへ移動する方法を示しています

  1. EWS 認証情報を使用して Exchange Server に接続
  2. メールボックス情報(フォルダー URI)を取得
  3. 受信トレイからすべてのメッセージを一覧表示
  4. 各メッセージを反復処理
  5. 件名に "process this message" が含まれるか確認
  6. 一致するメッセージを削除済みアイテム フォルダーへ移動
  7. 移動された各メッセージの確認を出力

Exchange フォルダーからメッセージを削除

フォルダーからメールメッセージを削除するには、以下を利用できます。 IEWSClient->DeleteMessage メソッドです。メッセージの一意な URI をパラメータとして受け取ります。

以下のコードサンプルは、件名基準に基づき、Exchange Server の受信トレイから特定のメールメッセージをフィルタリングして削除する方法を示しています

  1. 受信トレイのメッセージを反復処理
  2. いくつかの条件に基づいてメッセージを処理します(この例では、メッセージの件名にキーワードがあるかを検出します)。
  3. 一致するメッセージを削除

メッセージを別の Exchange フォルダーへコピー

使用する IEWSClient::CopyItem メッセージを別フォルダーに複製します。オーバーロード版は新しく作成されたコピーの URI を返します

以下のコードサンプルは、Exchange Server 上にメールメッセージを作成し、別のフォルダーへコピーする方法を示しています