Microsoft Exchange Server 允许您为收件箱定义不同的规则,这些规则适用于邮件,例如将邮件移动到文件夹、删除邮件等。在 .NET 应用程序中使用 Exchange 服务时,您可能需要以编程方式管理收件箱规则。在本文中,您将了解如何使用 C# .NET 在 MS Exchange Server 上创建和更新收件箱规则。
在 Exchange Server 上创建和更新收件箱规则的 C# API
要在 MS Exchange Server 上创建和更新收件箱规则,我们将使用 Aspose.Email for .NET。该 API 使与 MS Exchange Server 无缝协作变得非常容易。您可以 下载 API 的 DLL 或使用以下命令从 NuGet 安装它。
PM> Install-Package Aspose.Email
使用 C# 在 Exchange Server 上创建收件箱规则
Aspose.Email for .NET 使用 Exchange Web 服务 (EWS) 来处理 Exchange Server 上的收件箱规则。以下是使用 C# 在 Exchange Server 上创建收件箱规则的步骤。
- 首先,连接到 Exchange Server 并将 EWS 客户端的实例放入 IEWSClient 对象中。
- 然后,创建一个 InboxRule 类的对象。
- 使用 InboxRule.DisplayName 属性设置规则的名称。
- 创建 RulePredicates 类的实例并指定条件。
- 将 RulePredicates 实例分配给 InboxRule.Conditions 属性。
- 创建 RuleActions 类的实例并设置操作。
- 将 RuleAction 实例分配给 InboxRule.Actions 属性。
- 最后,调用 IEWSClient.CreateInboxRule(InboxRule) 创建规则。
以下代码示例展示了如何使用 C# 在 Exchange Server 上创建收件箱规则。
// 设置 Exchange Server Web 服务 URL、用户名、密码和域
string mailboxURI = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
// 连接到 Exchange 服务器
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# 中更新 Exchange Server 上的收件箱规则
以下是在 C# 中获取和更新 Exchange Server 上现有收件箱规则的步骤。
- 首先,连接到 Exchange Server 并将 EWS 客户端的实例放入 IEWSClient 对象中。
- 然后,调用 IEWSClient.GetInboxRules() 方法获取 InboxRule 数组中的所有规则。
- 循环遍历数组中的每个 InboxRule。
- 根据某些条件过滤所需的规则。
- 更新规则的条件或操作。
- 最后调用IEWSClient.UpdateInboxRule(InboxRule)方法更新收件箱规则。
以下代码示例显示了如何在 C# 中更新 MS Exchange Server 上的收件箱规则。
// 设置邮箱URI、用户名、密码和域
string mailboxURI = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
// 连接到 Exchange 服务器
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);
}
}
用于管理 Exchange Server 上的收件箱规则的 C# API - 获取免费许可证
您可以获得 免费临时许可证 来管理 MS Exchanger 服务器上的收件箱规则,而不受评估限制。
结论
在本文中,您了解了如何在 .NET 应用程序中使用 Microsoft Exchange Server 上的收件箱规则。在代码示例的帮助下,您了解了如何使用 C# 在 Exchange Server 上添加或更新收件箱规则。此外,您可以浏览 文档 以了解更多关于 Aspose.Email for .NET 的信息。此外,您可以将您的查询发布到我们的 论坛。