Microsoft Exchange Serverでの会話は、スレッド内の電子メールメッセージのグループと呼ばれます。簡単に言えば、電子メールとそのすべての返信は会話であることが知られています。この記事では、MSExchangeServerでプログラムで会話を操作する方法を紹介します。特に、C#.NETのMS Exchange Serverで会話を検索、コピー、移動、および削除する方法を学習します。
- MS ExchangeServerで会話を処理するためのC#.NET API
- C#でMSExchangeServerの会話を検索する
- C#でMSExchangeServerの会話をコピーする
- C#でMSExchangeServerの会話を移動する
- C#でMSExchangeServerの会話を削除する
MS ExchangeServerで会話を処理するためのC#.NET API
Microsoft Exchange Serverでの会話を管理するには、Aspose.Email for.NETを使用します。これは、電子メールクライアントアプリケーションを実装するためのさまざまな機能を提供する強力なAPIです。また、MSExchangeServerのさまざまなサービスにシームレスにアクセスできます。次のコマンドを使用して、APIのDLLをダウンロードするか、NuGetからインストールできます。
PM> Install-Package Aspose.Email
C#でMSExchangeServerの会話を検索する
以下は、C#のMSExchangeServerのフォルダーから会話を検索する手順です。
- まず、NetworkCredentialオブジェクトを作成し、ユーザー名、パスワード、およびドメインを使用して初期化します。
- 次に、メールボックスURIとNetworkCredentialオブジェクトを使用してIEWSClientを初期化します。
- IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri)メソッドを呼び出し、ExchangeConversation配列で会話を取得します。
- 最後に、配列内の各ExchangeConversationオブジェクトをループして、その詳細を取得します。
次のコードサンプルは、C#のMSExchangeServerのフォルダーから会話を検索する方法を示しています。
string mailboxUri = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);
// MSExchangeServerに接続します
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");
// 受信トレイから会話を取得
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
// すべての会話を表示する
foreach (ExchangeConversation conversation in conversations)
{
// IDやトピックなどの会話プロパティを表示する
Console.WriteLine("Topic: " + conversation.ConversationTopic);
Console.WriteLine("Flag Status: " + conversation.FlagStatus.ToString());
Console.WriteLine();
}
C#でMSExchangeServerの会話をコピーする
複雑なコードを記述せずに、あるフォルダから別のフォルダに会話をコピーすることもできます。デモンストレーションとして、会話を受信トレイからC#.NETのExchangeServerの削除済みアイテムフォルダーにコピーする方法を見てみましょう。
- まず、NetworkCredentialオブジェクトを作成し、ユーザー名、パスワード、およびドメインを使用して初期化します。
- 次に、メールボックスURIとNetworkCredentialオブジェクトを使用してIEWSClientを初期化します。
- IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri)メソッドを呼び出し、ExchangeConversation配列で会話を取得します。
- アレイ内の各ExchangeConversationをループし、必要なものをフィルタリングします。
- 最後に、IEWSClient.CopyConversationItems(ExchangeConversation.ConversationId、client.MailboxInfo.DeletedItemsUri)メソッドを使用して会話をコピーします。
次のコードサンプルは、C#.NETを使用してMSExchangeServerで会話をコピーする方法を示しています。
string mailboxUri = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);
// MSExchangeServerに接続します
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");
// 会話をする
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
foreach (ExchangeConversation conversation in conversations)
{
Console.WriteLine("Topic: " + conversation.ConversationTopic);
// 条件に基づいて会話アイテムをコピーする
if (conversation.ConversationTopic.Contains("test email") == true)
{
client.CopyConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
Console.WriteLine("Copied the conversation item to another folder");
}
}
C#でMSExchangeServerの会話を移動する
前のセクションでは、会話を1つのフォルダーから別のフォルダーにコピーしました。ただし、場合によっては、会話を特定のフォルダーに移動する必要があります。以下は、C#.NETのMSExchangeServerで会話を移動する手順です。
- まず、NetworkCredentialオブジェクトを作成し、ユーザー名、パスワード、およびドメインを使用して初期化します。
- 次に、メールボックスURIとNetworkCredentialオブジェクトを使用してIEWSClientを初期化します。
- IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri)メソッドを呼び出し、ExchangeConversation配列で会話を取得します。
- アレイ内の各ExchangeConversationをループし、必要なものをフィルタリングします。
- 最後に、IEWSClient.MoveConversationItems(ExchangeConversation.ConversationId、client.MailboxInfo.DeletedItemsUri)メソッドを使用して会話を移動します。
次のコードサンプルは、C#.NETを使用してMSExchangeServerで会話を移動する方法を示しています。
string mailboxUri = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);
// MSExchangeServerに接続します
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");
// 会話をする
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
foreach (ExchangeConversation conversation in conversations)
{
Console.WriteLine("Topic: " + conversation.ConversationTopic);
// 条件に基づいて会話アイテムを移動する
if (conversation.ConversationTopic.Contains("test email") == true)
{
client.MoveConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
Console.WriteLine("Moved the conversation item to another folder");
}
}
C#でMSExchangeServerの会話を削除する
最後になりましたが、C#でMSExchangeServerから会話を削除する方法を見てみましょう。
- まず、NetworkCredentialオブジェクトを作成し、ユーザー名、パスワード、およびドメインを使用して初期化します。
- 次に、メールボックスURIとNetworkCredentialオブジェクトを使用してIEWSClientを初期化します。
- その後、IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri)メソッドを呼び出し、ExchangeConversation配列で会話を取得します。
- アレイ内の各ExchangeConversationをループし、必要なものをフィルタリングします。
- 最後に、IEWSClient.DeleteConversationItems(ExchangeConversation.ConversationId)メソッドを使用して会話を削除します。
次のコードサンプルは、C#.NETのMSExchangeServerから会話を削除する方法を示しています。
string mailboxUri = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);
// MSExchangeServerに接続します
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");
// 会話をする
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
foreach (ExchangeConversation conversation in conversations)
{
Console.WriteLine("Topic: " + conversation.ConversationTopic);
// 条件に基づいて会話アイテムを削除する
if (conversation.ConversationTopic.Contains("test email") == true)
{
client.DeleteConversationItems(conversation.ConversationId);
Console.WriteLine("Deleted the conversation item");
}
}
無料のAPIライセンスを取得する
無料の一時ライセンスを取得して、評価の制限なしにAspose.Emailfor.NETを使用できます。
結論
この記事では、C#を使用してMicrosoftExchangeServerで会話を管理する方法を学習しました。 C#でプログラムによってMS Exchange Serverで会話を検索、コピー、移動、および削除する方法を見てきました。さらに、ドキュメントを調べて、Aspose.Emailfor.NETの詳細を読むことができます。また、フォーラムから質問することもできます。