在使用 Microsoft Exchange Server 的服务时,您可能需要为收件箱文件夹定义不同的规则。这些规则适用于邮件,例如将邮件移动到文件夹、删除邮件等。收件箱规则由条件和满足条件时要执行的操作组成。在本文中,您将了解如何使用 Java 在 MS Exchange Server 上创建和更新收件箱规则。
用于管理 Exchange Server 上的收件箱规则的 Java API
要在 MS Exchange Server 上使用收件箱规则,我们将使用 Aspose.Email for Java。该 API 旨在与 MS Exchange Server 无缝协作并管理其服务。您可以 下载 API 或使用以下 Maven 配置安装它。
存储库:
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
依赖:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-email</artifactId>
<version>22.3</version>
<classifier>jdk16</classifier>
</dependency>
用 Java 在 Exchange Server 上创建收件箱规则
Aspose.Email for Java 使用 Exchange Web 服务 (EWS) 来处理 Exchange Server 上的收件箱规则。以下是使用 Java 在 Exchange Server 上创建收件箱规则的步骤。
- 首先,连接到 Exchange Server 并将 EWS 客户端的实例放入 IEWSClient 对象中。
- 然后,创建一个 InboxRule 类的对象。
- 使用 InboxRule.setDisplayName() 方法设置规则的名称。
- 创建 RulePredicates 类的实例并指定条件。
- 使用 InboxRule.setConditions() 方法分配 RulePredicates 实例。
- 创建 RuleActions 类的实例并设置操作。
- 使用 InboxRule.setActions() 方法分配 RuleAction 实例。
- 最后,调用 IEWSClient.createInboxRule(InboxRule) 创建规则。
以下代码示例显示了如何在 Java 中在 Exchange Server 上创建收件箱规则。
// 连接到 Exchange 服务器
IEWSClient client = EWSClient.getEWSClient(mailboxURI, credential);
System.out.println("Connected to Exchange server");
// 创建新规则
InboxRule rule = new InboxRule();
rule.setDisplayName("Message from client ABC");
// 添加条件
RulePredicates newRules = new RulePredicates();
// 设置主题包含字符串“ABC”并添加条件
newRules.containsSubjectStrings().addItem("ABC");
newRules.getFromAddresses().addMailAddress(new MailAddress("administrator@ex2010.local", true));
rule.setConditions(newRules);
// 添加操作并将消息移动到文件夹
RuleActions newActions = new RuleActions();
newActions.setMoveToFolder("120:AAMkADFjMjNjMmNjLWE3NzgtNGIzNC05OGIyLTAwNTgzNjRhN2EzNgAuAAAAAABbwP+Tkhs0TKx1GMf0D/cPAQD2lptUqri0QqRtJVHwOKJDAAACL5KNAAA=AQAAAA==");
rule.setActions(newActions);
// 创建规则
client.createInboxRule(rule);
用 Java 更新 Exchange Server 上的收件箱规则
以下是在 Java 中获取和更新 Exchange Server 上现有收件箱规则的步骤。
- 首先,连接到 Exchange Server 并将 EWS 客户端的实例放入 IEWSClient 对象中。
- 然后,调用 IEWSClient.getInboxRules() 方法获取 InboxRule 数组中的所有规则。
- 循环遍历数组中的每个 InboxRule。
- 根据某些条件过滤所需的规则。
- 更新规则的条件或操作。
- 最后调用IEWSClient.updateInboxRule(InboxRule)方法更新收件箱规则。
以下代码示例显示了如何在 Java 中更新 MS Exchange Server 上的收件箱规则。
// 连接到 Exchange 服务器
IEWSClient client = EWSClient.getEWSClient(mailboxURI, credential);
System.out.println("Connected to Exchange server");
// 获取所有收件箱规则
InboxRule[] inboxRules = client.getInboxRules();
// 循环遍历每条规则
for (InboxRule inboxRule : inboxRules) {
if ("Message from client ABC".equals(inboxRule.getDisplayName())) {
// 更新规则
inboxRule.getConditions().getFromAddresses().set_Item(0, new MailAddress("administrator@ex2010.local", true));
client.updateInboxRule(inboxRule);
}
}
获取免费 API 许可证
您可以获得 免费的临时许可证 使用 Aspose.Email for Java,没有评估限制。
结论
在本文中,您学习了如何在 Java 应用程序中使用 Microsoft Exchange Server 上的收件箱规则。您已了解如何使用 Java 在 Exchange Server 上添加或更新收件箱规则。此外,您可以使用 文档 探索 Aspose.Email for Java 的功能。此外,如果您有任何问题,您可以在我们的 论坛 上发帖。