使用 C# 从 MS Exchange Server 读取电子邮件

Microsoft Exchange Server 是一个平台,可让您管理联系人、电子邮件、日历、日程安排并提供多种协作功能。使用 MS Exchange Server,您可以部署自己的邮件服务器,而无需依赖第三方。还可以通过 Web 服务从您的 Web、桌面或移动应用程序中访问 MS Exchange Server。因此,您可以在应用程序中执行邮寄和日历操作。在本文中,您将学习如何使用 C# 连接到 Exchange Server。此外,我们将演示如何在 C# 中从 Exchange Server 读取电子邮件。

从 Exchange Server 读取电子邮件的 C# API - 免费下载

Aspose.Email for .NET 提供易于使用的 API,以便与 MS Exchange Server 一起使用。它允许您使用 Exchange Web 服务 (EWS) 或 Internet 消息访问协议 (IMAP) 连接到您的邮件服务器。连接后,您可以通过几个步骤访问邮箱中的项目。您可以通过 NuGet下载 其 DLL 安装 Aspose.Email for .NET。

PM> Install-Package Aspose.Email

使用 C# 连接到 Exchange 服务器

Aspose.Email for .NET 提供了两种连接到 Exchange Server 实例的方法:EWS 和 IMAP。以下部分提供了如何使用任何一种方式建立连接的步骤。

通过 EWS 连接到 Exchange 服务器

以下是使用 Aspose.Email for .NET 连接到 MS Exchange Server 的步骤。

以下代码示例显示如何使用 C# 通过 EWS 连接到 Exchange Server。

// 如需完整的示例和数据文件,请访问 https://github.com/aspose-email/Aspose.Email-for-.NET
private static IEWSClient GetExchangeEWSClient()
{
    const string mailboxUri = "https://outlook.office365.com/ews/exchange.asmx";
    const string domain = @"";
    const string username = @"username@ASE305.onmicrosoft.com";
    const string password = @"password";
    NetworkCredential credentials = new NetworkCredential(username, password, domain);
    IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
    return client;
}

C# 通过 IMAP 连接到 Exchange 服务器

要通过 IMAP 连接到 Exchange Server,请确保您的服务器上启用了 IMAP 服务。完成后,按照以下步骤连接到 Exchange Server。

  • 创建 ImapClient 类的实例并向其构造函数提供主机、用户名和密码。
  • 使用 ImapClient.SecurityOptions 属性设置安全选项。
  • 使用 ImapClient 对象访问邮箱中的项目。

以下代码示例显示了如何使用 C# 通过 IMAP 访问 Exchange Server。

// 使用 ImapClient 类连接到 Exchange Server
ImapClient imapClient = new ImapClient("ex07sp1", "Administrator", "Evaluation1");
imapClient.SecurityOptions = SecurityOptions.Auto;

C# 使用 EWS 从 Exchange Server 读取电子邮件

以下是使用 EWS 从 Exchange Server 读取电子邮件的步骤。

  • 创建 IEWSClient 的实例。
  • 使用 IEWSClient.ListMessage(String) 方法访问电子邮件集合。
  • 遍历电子邮件集合以获取每封电子邮件的详细信息。

以下代码示例展示了如何使用 C# 从 Exchange Server 读取电子邮件。

// 如需完整的示例和数据文件,请访问 https://github.com/aspose-email/Aspose.Email-for-.NET
// 通过提供凭据创建 ExchangeWebServiceClient 类的实例
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "UserName", "Password");

// 调用 ListMessages 方法列出收件箱中的消息信息
ExchangeMessageInfoCollection msgCollection = client.ListMessages(client.MailboxInfo.InboxUri);

// 循环遍历集合以显示基本信息
foreach (ExchangeMessageInfo msgInfo in msgCollection)
{
    Console.WriteLine("Subject: " + msgInfo.Subject);
    Console.WriteLine("From: " + msgInfo.From.ToString());
    Console.WriteLine("To: " + msgInfo.To.ToString());
    Console.WriteLine("Message ID: " + msgInfo.MessageId);
    Console.WriteLine("Unique URI: " + msgInfo.UniqueUri);
}

在 C# 中使用 IMAP 从 Exchange Server 读取电子邮件

以下是在 C# 中使用 IMAP 从 Exchange Server 读取电子邮件的步骤。

以下 C# 代码示例展示了如何使用 IMAP 从 Exchange Server 读取电子邮件。

// 如需完整的示例和数据文件,请访问 https://github.com/aspose-email/Aspose.Email-for-.NET
// 使用 ImapClient 类连接到 Exchange Server
ImapClient imapClient = new ImapClient("ex07sp1", "Administrator", "Evaluation1");
imapClient.SecurityOptions = SecurityOptions.Auto;

// 选择收件箱文件夹
imapClient.SelectFolder(ImapFolderInfo.InBox);

// 获取消息列表
ImapMessageInfoCollection msgCollection = imapClient.ListMessages();
foreach (ImapMessageInfo msgInfo in msgCollection)
{
    Console.WriteLine(msgInfo.Subject);
}
// 断开与服务器的连接
imapClient.Dispose();

用于读取 Exchange Server 电子邮件的 C# API - 获得免费许可证

您可以免费试用该 API,不受评估限制。 获取免费的临时许可证 现在。

Aspose Email API for C# - 现场演示

结论

在本文中,您学习了如何使用 C# 连接到 MS Exchange Server。此外,我们还介绍了如何使用 C# 从 Exchange Server 读取电子邮件。代码示例明确展示了如何使用 EWS 和 IMAP 客户端访问 Exchange Server。您可以使用 文档 探索有关 C# 电子邮件 API 的更多信息。

也可以看看

使用 C# 创建和发送电子邮件在 Python 中使用 IMAP 读取电子邮件使用 Python 连接 SMTP 服务器
使用 C# .NET 通过对话线程对来自 PST 的消息进行分组