Microsoft Exchange Server 是一个平台,可让您管理联系人、电子邮件、日历、日程安排并提供多种协作功能。使用 MS Exchange Server,您可以部署自己的邮件服务器,而无需依赖第三方。还可以通过 Web 服务从您的 Web、桌面或移动应用程序中访问 MS Exchange Server。因此,您可以在应用程序中执行邮寄和日历操作。在本文中,您将学习如何使用 C# 连接到 Exchange Server。此外,我们将演示如何在 C# 中从 Exchange Server 读取电子邮件。
- 从 Exchange Server 读取电子邮件的 C# API
- 在 C# 中连接到 MS Exchange 服务器
- 使用 EWS 从 Exchange Server 读取电子邮件
- 使用 IMAP 从 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 的步骤。
- 使用 NetworkCredential 类设置凭据,包括用户名、密码和域。
- 获取 EWSClient.GetEWSClient(String, ICredentials) 方法返回的 IEWSClient 对象。
- 使用 IEWSClient 对象执行进一步的操作。
以下代码示例显示如何使用 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 读取电子邮件的步骤。
- 创建 ImapClient 类的实例并向其构造函数提供主机、用户名和密码。
- 使用 ImapClient.SecurityOptions 属性设置安全选项。
- 使用 ImapClient.SelectFolder() 方法选择收件箱、已发送等文件夹。
- 使用 ImapClient.ListMessages() 方法获取电子邮件集合。
- 循环访问电子邮件集合以访问每条消息。
以下 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 的消息进行分组 |