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の詳細を読むことができます。さらに、あなたは私たちのフォーラムにあなたの質問を投稿することができます。