Microsoft Exchange Serverは、電子メール、連絡先管理、予定表、およびその他のサービスを提供する、広く使用されているコラボレーションプラットフォームです。 前の投稿では、.NETアプリケーションでプログラムによってMSExchangeServerからの電子メールにアクセスして読み取る方法を示しました。ただし、ExchangeServer上のあるフォルダから別のフォルダに電子メールをコピーする必要がある場合もあります。これを実現するために、この記事では、C#.NETのMSExchangeServer上の特定のフォルダーに電子メールを移動する方法を示します。
- MicrosoftExchangeServerで電子メールを移動するための.NET API
- 既存の電子メールをMSExchangeServer上のフォルダーに移動する
- 新しい電子メールをMSExchangeServer上のフォルダに移動する
Microsoft Exchange Serverで電子メールを移動するためのC#.NET API
MS Exchange Serverで電子メールを移動するには、Aspose.Email for.NETを使用します。 APIは、MSExchangeServerに接続して操作するための簡単な方法を提供します。 NuGetまたはダウンロードそのDLLを介してインストールできます。
PM> Install-Package Aspose.Email
電子メールをC#のMSExchangeServer上のフォルダーに移動する
以下は、C#でMSExchangeServer上の特定のフォルダーに電子メールを移動する手順です。
- まず、ユーザー名、パスワード、ドメイン、URIを使用してIEWSClientオブジェクトを初期化します。
- 次に、IEWSClient.ListMessages(IEWSClient.MailboxInfo.InboxUri)メソッドを使用して、ExchangeMessageInfoCollectionオブジェクト内の電子メールメッセージのリストを取得します。
- その後、各ExchangeMessageInfoメッセージをループして、必要なメッセージをフィルタリングします。
- 次に、ExchangeMessageInfo.UniqueUriプロパティを使用して、移動するメッセージのURIを取得します。
- 最後に、IEWSClient.CopyItem(string URI、IEWSClient.MailboxInfo.DeletedItemsUri)メソッドを使用して電子メールメッセージを移動します。
次のコードサンプルは、C#.NETのMSExchangeServer上のフォルダーに電子メールを移動する方法を示しています。
try
{
// 資格情報を指定してEWSClientクラスのインスタンスを作成します
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// ListMessagesメソッドを呼び出して、受信トレイからのメッセージ情報を一覧表示します
ExchangeMessageInfoCollection msgCollection = client.ListMessages(client.MailboxInfo.InboxUri);
// コレクションをループしてメッセージURIを取得します
foreach (ExchangeMessageInfo msgInfo in msgCollection)
{
if (msgInfo.From.Address.Contains("jhon.vick"))
{
String strMessageURI = msgInfo.UniqueUri;
// 特定のフォルダにコピーする
string newMessageUri = client.CopyItem(strMessageURI, client.MailboxInfo.DeletedItemsUri);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
新しい電子メールをMSExchangeServer上のフォルダに移動する
新しく作成した電子メールをMSExchangeServerの特定のフォルダーに移動することもできます。この操作を実行する手順は次のとおりです。
- まず、ユーザー名、パスワード、ドメイン、URIを使用してIEWSClientオブジェクトを初期化します。
- 次に、MailMessageクラスを使用して新しいメッセージを作成します。
- その後、IEWSClient.AppendMessage(MailMessage)メソッドによって返される電子メールメッセージのURIを取得します。
- 最後に、IEWSClient.CopyItem(string URI、IEWSClient.MailboxInfo.OutboxUri)メソッドを使用して電子メールメッセージを移動します。
次のコードサンプルは、新しい電子メールメッセージをMSExchangeServerのフォルダに移動する方法を示しています。
try
{
// 資格情報を指定してEWSClientクラスのインスタンスを作成します
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// メッセージを作成する
MailMessage message = new MailMessage("from@domain.com", "to@domain.com", "EMAILNET-34997 - " + Guid.NewGuid().ToString(), "EMAILNET-34997 Exchange: Copy a message and get reference to the new Copy item");
// メッセージURIを取得する
string messageUri = client.AppendMessage(message);
// メッセージをコピーする
string newMessageUri = client.CopyItem(messageUri, client.MailboxInfo.OutboxUri);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
無料のAPIライセンスを取得する
無料の一時ライセンスを取得して、評価の制限なしにAspose.Emailfor.NETを使用できます。
結論
この記事では、C#を使用してMicrosoftExchangeServerの特定のフォルダーに電子メールを移動する方法を学習しました。さらに、新しく作成した電子メールメッセージをExchangeServerの特定のフォルダーに移動する方法を見てきました。さらに、ドキュメントを調べて、Aspose.Emailfor.NETの詳細を読むことができます。また、フォーラムから質問することもできます。