Microsoft Exchange Server 是提供电子邮件、日历、联系人管理和其他协作服务的邮件服务器。它可以从您的 Web 或桌面应用程序中轻松连接和访问。因此,您可以与 Exchange Server 通信并访问电子邮件、联系人、日历等。在本文中,您将学习如何连接到 MS Exchange Server 并使用 Java 阅读电子邮件。
- 用于 MS Exchange Server 的 Java API
- 使用 Java 连接到 MS Exchange Server
- 用 Java 从 MS Exchange Server 读取电子邮件
- 获取免费 API 许可证
用于 MS Exchange Server 的 Java API
Aspose.Email for Java 是一个强大的 API,为您提供了广泛的电子邮件管理功能。它允许您在 Java 应用程序中实现功能丰富的电子邮件客户端。此外,API 允许您从 MS Exchange Server 访问文件夹、子文件夹、电子邮件、日历、联系人等。您可以下载 API 的 JAR 或使用以下 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>21.2</version>
<classifier>jdk16</classifier>
</dependency>
使用 Java 连接到 MS Exchange Server
为了使用 MS Exchange Server,您需要先建立连接。 Aspose.Email for Java 提供以下方式连接到 Exchange Server。
- 使用 Exchange Web 服务 (EWS)
- 使用 Internet 消息访问协议 (IMAP)
在 Java 中使用 EWS 连接到 Exchange Server
以下是通过 EWS 连接到 Exchange Server 的步骤。
- 创建 IEWSClient 类的实例。
- 使用 EWSClient.getEWSClient(String, String, String, String) 方法初始化 EWSClient 对象。
以下代码示例显示了如何使用 Java 中的 EWS 连接到 MS Exchange Server。
// 创建 IEWSClient 类的实例以连接到 Exchange Server
IEWSClient client = EWSClient.getEWSClient("https://exchange.domain.com/ews/Exchange.asmx/", "user", "password", "");
在 Java 中使用 IMAP 连接到 Exchange Server
在尝试使用 IMAP 连接到 Exchange Server 之前,请确保您已启用 IMAP 服务。完成后,以下是使用 IMAP 连接到 Exchange Server 的步骤。
- 创建 ImapClient 类的实例,并使用地址、端口、用户名和密码对其进行初始化。
- 使用 ImapClient 对象访问消息、联系人等。
以下代码示例显示如何使用 IMAP 连接到 Exchange Sever。
// 使用 ImapClient 类连接到 Exchange Server
ImapClient imapClient = new ImapClient("imap.gmail.com", 993, "username", "password");
用 Java 从 MS Exchange Server 读取电子邮件
连接到 Exchange Server 后,您可以从服务器读取消息。您可以使用 EWS 或 IMAP 执行此操作。
使用 EWS 从 MS Exchange Server 读取电子邮件
以下是使用 EWS 从 Exchange Server 读取电子邮件的步骤。
- 创建 IEWSClient 类的实例。
- 使用 EWSClient.getEWSClient(String, String, String, String) 方法初始化 EWSClient 对象。
- 使用 EWSClient.listMessages(EWSClient.getMailboxInfo().getInboxUri()) 方法从收件箱中获取消息信息列表到 ExchangeMessageInfoCollection 对象。
- 循环遍历集合中的每个 ExchangeMessageInfo 对象以读取消息。
以下代码示例显示了如何通过 Java 中的 EWS 从 Exchange Server 读取消息。
// 通过提供凭据创建 ExchangeWebServiceClient 类的实例
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// 调用 ListMessages 方法列出收件箱中的消息信息
ExchangeMessageInfoCollection msgCollection = client.listMessages(client.getMailboxInfo().getInboxUri());
// 遍历集合以获取消息 URI
for (ExchangeMessageInfo msgInfo : msgCollection) {
String strMessageURI = msgInfo.getUniqueUri();
// 现在使用 FetchMessage() 获取消息详细信息
MailMessage msg = client.fetchMessage(strMessageURI);
// 显示消息详情
System.out.println("Subject: " + msg.getSubject());
//Console.WriteLine("HTML 正文:" + msg.HtmlBody);
// 多少个附件
System.out.println("Number of attachments: " + msg.getAttachments().size());
// 列出附件
for (Attachment att : msg.getAttachments()) {
System.out.println("Attachment Name: " + att.getName());
}
}
使用 IMAP 从 MS Exchange Server 读取电子邮件
以下是使用 IMAP 从 Exchange Server 读取电子邮件的步骤。
- 创建 ImapClient 类的实例并使用地址、端口、用户名和密码对其进行初始化。
- 使用 ImapClient.listMessages() 方法将消息信息列表获取到 ImapMessageInfoCollection 对象中。
- 循环遍历集合中的每个 ImapMessageInfo 对象以阅读电子邮件。
以下代码示例展示了如何使用 Java 通过 IMAP 从 Exchange Server 读取电子邮件。
// 使用 ImapClient 类连接到 Exchange Server
ImapClient imapClient = new ImapClient("imap.gmail.com", 993, "username", "password");
// 选择收件箱文件夹
imapClient.selectFolder(ImapFolderInfo.IN_BOX);
// 获取消息列表
ImapMessageInfoCollection msgCollection = imapClient.listMessages();
for (ImapMessageInfo msgInfo : msgCollection) {
System.out.println(msgInfo.getSubject());
}
获取免费 API 许可证
您可以通过获得 临时许可证 来试用 Aspose.Email for Java,而不受评估限制。
现场演示
结论
在本文中,您学习了如何使用 Java 连接到 MS Exchange Server 和阅读电子邮件。此外,您还了解了如何使用 EWS 或 IMAP 访问 MS Exchange Server。您可以使用 documentation 探索更多关于 Aspose.Email for Java 的信息。如果您有任何问题或疑问,请随时通过我们的 论坛 告诉我们。