Microsoft Exchange Serverは、電子メールを作成、送信、および管理するための便利な機能を多数提供します。これらの機能の1つは、複数のユーザーがアクセスできる共有メールボックスです。 .NETアプリケーション内からMSExchangeServerを操作しているときに、共有メールボックスから電子メールにアクセスする必要がある場合があります。したがって、この記事では、C#.NETを使用してMSExchangeServer上の共有メールボックスから電子メールメッセージを読み取る方法を学習します。
ExchangeServer上の共有メールボックスから電子メールを読み取るためのC#.NET API
Aspose.Email for .NETは、電子メールを作成、送信、および処理するためのさまざまな機能を提供する電子メール処理APIです。さらに、複雑なコードを記述せずにMSOutlookおよびExchangeServerを操作できます。このAPIを使用して、MSExchangeServer上の共有メールボックスから電子メールを読み取ります。次のコマンドを使用して、APIのDLLをダウンロードするか、NuGetからインストールできます。
PM> Install-Package Aspose.Email
C#のExchangeServer上の共有メールボックスから電子メールを読み取る
以下は、C#のEWSクライアントを使用してMSExchangeServerの共有メールボックスから電子メールを読み取る手順です。
- ネットワーククレデンシャルを指定します。
- Exchange Serverに接続し、EWSクライアントのインスタンスをIEWSClientオブジェクトに取得します。
- IEWSClient.ListItems(String, String)メソッドを使用して、目的のフォルダーから配列に電子メールを取得します。
- 配列内の各電子メールをループして、次の手順を実行します。
- IEWSClient.FetchItem(String)メソッドを使用して、各メッセージをMapiMessageオブジェクトにフェッチします。
- MapiMessage.SubjectプロパティなどのMapiMessageオブジェクトを使用して、メッセージの詳細を読み取ります。
次のコードサンプルは、C#のMSExchangeServer上の共有メールボックスから電子メールメッセージを読み取る方法を示しています。
const string mailboxUri = "<HOST>";
const string domain = "";
const string username = "<EMAIL ADDRESS>";
const string password = "<PASSWORD>";
const string sharedEmail = "<SHARED EMAIL ADDRESS>";
// クレデンシャルを設定する
NetworkCredential credentials = new NetworkCredential(username, password, domain);
// サーバーに接続する
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
// メールアイテムを取得する
string[] items = client.ListItems(sharedEmail, "Inbox");
// メールをループして各メッセージを取得する
foreach (string item in items)
{
MapiMessage msg = client.FetchItem(item);
Console.WriteLine("Subject:" + msg.Subject);
}
client.Dispose();
無料のAPIライセンスを取得する
無料の一時ライセンスを取得して、評価の制限なしにAspose.Emailfor.NETを使用できます。
結論
この記事では、C#でMicrosoftExchangeServerの共有メールボックスから電子メールメッセージを読み取る方法を学習しました。この機能を.NETアプリケーションに統合するには、APIをインストールして、提供されているコードサンプルを使用するだけです。さらに、ドキュメントからAspose.Emailfor.NETの他の機能について読むことができます。また、フォーラムから質問することもできます。