C#のMSExchangeServerでフォルダを作成および削除する

Microsoft Exchange Serverでは、電子メールは受信トレイ、送信トレイなどのさまざまなフォルダーに整理されます。また、必要に応じて独自のフォルダーまたはサブフォルダーを作成できます。 MS Exchange Serverを使用しているときに、プログラムでカスタムフォルダを作成する必要がある場合があります。この記事では、C#.NETのMSExchangeServerでEWSを使用してフォルダーまたはサブフォルダーを作成する方法を学習します。また、ExchangeServer上のフォルダを削除する方法についても説明します。

MS ExchangeServer上にフォルダを作成するためのC#.NET API

MS Exchange Server上のEWSでフォルダを管理するには、Aspose.Email for.NETを利用します。 APIを使用すると、.NETアプリケーション内からExchangeServerのサービスを非常に簡単に操作できます。次のコマンドを使用して、APIのDLLをダウンロードするか、NuGetからインストールできます。

PM> Install-Package Aspose.Email

C#でMSExchangeServerにフォルダを作成する

以下は、C#でMSExchangeServerにフォルダーを作成する手順です。

  • MS Exchange Serverに接続し、IEWSClientでEWSクライアントオブジェクトを取得します。
  • ルートフォルダの名前と作成するフォルダを指定します。
  • IEWSClient.CreateFolder(string, string)メソッドを使用してフォルダーを作成します。

次のコードサンプルは、C#でEWSを使用してMSExchangeServerにフォルダーを作成する方法を示しています。

// 資格情報を指定してEWSClientクラスのインスタンスを作成します
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

// 受信トレイのURIを取得します(受信トレイにフォルダーを作成するため)
string inbox = client.MailboxInfo.InboxUri;

// フォルダ名を指定する
string folderName1 = "EMAILNET-35054";

try
{
    // フォルダーを作る
    client.UseSlashAsFolderSeparator = true;
    client.CreateFolder(client.MailboxInfo.InboxUri, folderName1);
}
catch
{
    // 何かをする
}

C#のMSExchangeServerにサブフォルダーを作成する

サブフォルダーを作成するには、最初に親フォルダーが存在するかどうかを確認する必要があります。含まれている場合は、サブフォルダーを作成するだけです。そうでない場合は、最初に親フォルダーを作成します。次の手順は、C#のMSExchangeServerでサブフォルダーを作成する方法を示しています。

次のコードサンプルは、C#のMSExchangeServerでサブフォルダーを作成する方法を示しています。

// 資格情報を指定してEWSClientクラスのインスタンスを作成します
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

// 受信トレイURIを取得する
string inbox = client.MailboxInfo.InboxUri;

// フォルダ名を指定する
string folderName1 = "EMAILNET-35054";

// サブフォルダー名を指定します
string subFolderName = "2015";
string folderName2 = folderName1 + "/" + subFolderName;

ExchangeFolderInfo rootFolderInfo = null; 

try
{
    client.UseSlashAsFolderSeparator = true;
    if (!client.FolderExists(inbox, folderName1, out rootFolderInfo))
    {
        // フォルダーを作る
        rootFolderInfo = client.CreateFolder(inbox, folderName1);
    }

    // サブフォルダを作成する
    client.CreateFolder(inbox, folderName2);
}
catch
{
    // 何かをする
}

C#でMSExchangeServer上のフォルダを削除する

以下は、C#でMSExchangeServer上のフォルダーを削除する手順です。

次のコードサンプルは、C#でMSExchangeServer上のフォルダーを削除する方法を示しています。

// 資格情報を指定してEWSClientクラスのインスタンスを作成します
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

// 受信トレイURIを取得する
string inbox = client.MailboxInfo.InboxUri;

// フォルダ名を指定する
string folderName1 = "EMAILNET-35054";

ExchangeFolderInfo rootFolderInfo = null;

try
{
    // フォルダが存在するかどうかを確認します
    if (client.FolderExists(inbox, folderName1, out rootFolderInfo))
    {
        // フォルダを削除する
        client.DeleteFolder(rootFolderInfo.Uri, true);
    }
}
catch
{
    // 何かをする
}

無料のAPIライセンスを取得する

無料の一時ライセンスを取得して、評価の制限なしにAspose.Emailfor.NETを使用できます。

結論

この記事では、C#でEWSを使用してMicrosoftExchangeServer上のフォルダーを操作する方法を学習しました。コードサンプルの助けを借りて、C#でプログラムによってMSExchangeServer上の特定のフォルダーを作成および削除する方法を見てきました。さらに、ドキュメントを調べて、Aspose.Emailfor.NETの詳細を読むことができます。また、フォーラムから質問することもできます。

関連項目