C#でExchangeServerの受信トレイルールを管理する

Microsoft Exchange Serverを使用すると、受信トレイにさまざまなルールを定義できます。これらのルールは、メッセージをフォルダーに移動したり、メッセージを削除したりするなど、メッセージに適用されます。.NETアプリケーション内からExchangeサービスを操作する場合、受信トレイのルールをプログラムで管理する必要がある場合があります。この記事では、C#.NETのMSExchangeServerで受信トレイルールを作成および更新する方法を学習します。

ExchangeServerで受信トレイルールを管理するための.NET API

MS Exchange Serverで受信トレイのルールを作成および更新するには、Aspose.Email for.NETを使用します。 APIを使用すると、MSExchangeServerとのシームレスな連携が非常に簡単になります。次のコマンドを使用して、APIのDLLをダウンロードするか、NuGetからインストールできます。

PM> Install-Package Aspose.Email

C#のExchangeServerで受信トレイルールを作成する

Aspose.Email for .NETは、Exchange Webサービス(EWS)を使用してExchangeServerの受信トレイルールを処理します。以下は、C#のExchangeServerで受信トレイルールを作成する手順です。

  • まず、Exchange Serverに接続し、EWSクライアントのインスタンスをIEWSClientオブジェクトに取得します。
  • 次に、InboxRuleクラスのオブジェクトを作成します。
  • InboxRule.DisplayNameプロパティを使用してルールの名前を設定します。
  • RulePredicatesクラスのインスタンスを作成し、条件を指定します。
  • RulePredicatesインスタンスをInboxRule.Conditionsプロパティに割り当てます。
  • RuleActionsクラスのインスタンスを作成し、アクションを設定します。
  • RuleActionインスタンスをInboxRule.Actionsプロパティに割り当てます。
  • 最後に、IEWSClient.CreateInboxRule(InboxRule)を呼び出してルールを作成します。

次のコードサンプルは、C#のExchangeServerで受信トレイルールを作成する方法を示しています。

// Exchange Server WebサービスのURL、ユーザー名、パスワード、およびドメインを設定します
string mailboxURI = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";

// ExchangeServerに接続します
NetworkCredential credential = new NetworkCredential(username, password, domain);
IEWSClient client = EWSClient.GetEWSClient(mailboxURI, credential);
Console.WriteLine("Connected to Exchange server");

// 新しいルールを作成する
InboxRule rule = new InboxRule();
rule.DisplayName = "Message from client ABC";

// 条件を追加
RulePredicates newRules = new RulePredicates();
// 条件の設定:件名に文字列「ABC」が含まれています
newRules.ContainsSubjectStrings.Add("ABC");
newRules.FromAddresses.Add(new MailAddress("administrator@ex2010.local", true));
rule.Conditions = newRules;

// アクションを追加する
RuleActions newActions = new RuleActions();
newActions.MoveToFolder = "120:AAMkADFjMjNjMmNjLWE3NzgtNGIzNC05OGIyLTAwNTgzNjRhN2EzNgAuAAAAAABbwP+Tkhs0TKx1GMf0D/cPAQD2lptUqri0QqRtJVHwOKJDAAACL5KNAAA=AQAAAA==";
rule.Actions = newActions;

// ルールを作成する
client.CreateInboxRule(rule);

C#でExchangeServerの受信トレイルールを更新する

以下は、C#のExchangeServerで既存の受信トレイルールを取得して更新する手順です。

  • まず、Exchange Serverに接続し、EWSクライアントのインスタンスをIEWSClientオブジェクトに取得します。
  • 次に、IEWSClient.GetInboxRules()メソッドを呼び出して、InboxRule配列内のすべてのルールを取得します。
  • 配列内の各InboxRuleをループします。
  • いくつかの条件に基づいて、必要なルールをフィルタリングします。
  • ルールの条件またはアクションを更新します。
  • 最後に、IEWSClient.UpdateInboxRule(InboxRule)メソッドを呼び出して、受信トレイルールを更新します。

次のコードサンプルは、C#でMSExchangeServerの受信トレイルールを更新する方法を示しています。

// メールボックスURI、ユーザー名、パスワード、ドメインを設定する
string mailboxURI = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";

// ExchangeServerに接続します
NetworkCredential credential = new NetworkCredential(username, password, domain);
IEWSClient client = EWSClient.GetEWSClient(mailboxURI, credential);

Console.WriteLine("Connected to Exchange server");

// すべての受信トレイルールを取得する
InboxRule[] inboxRules = client.GetInboxRules();

// 各ルールをループする
foreach (InboxRule inboxRule in inboxRules)
{
    if (inboxRule.DisplayName == "Message from client ABC")
    {
        // ルールの更新
        inboxRule.Conditions.FromAddresses[0] = new MailAddress("administrator@ex2010.local", true);
        client.UpdateInboxRule(inboxRule);
    }
}

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

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

結論

この記事では、.NETアプリケーション内からMicrosoftExchangeServerの受信トレイルールを操作する方法を学習しました。コードサンプルを使用して、C#のExchangeServerで受信トレイルールを追加または更新する方法を確認しました。さらに、ドキュメントを調べて、Aspose.Emailfor.NETの詳細を読むことができます。さらに、あなたは私たちのフォーラムにあなたの質問を投稿することができます。

関連項目