Microsoft Exchange Server 是一个广泛使用的协作平台,提供电子邮件、联系人管理、日历和其他服务。在 上一篇文章 中,我们向您展示了如何在 .NET 应用程序中以编程方式访问和阅读来自 MS Exchange Server 的电子邮件。但是,您可能还需要将电子邮件从一个文件夹复制到 Exchange Server 上的另一个文件夹。为此,本文展示了如何在 C# .NET 中将电子邮件移动到 MS Exchange Server 上的特定文件夹。
- .NET API 在 Microsoft Exchange Server 上移动电子邮件
- 将现有电子邮件移动到 MS Exchange Server 上的文件夹
- 将新电子邮件移至 MS Exchange Server 上的文件夹
C# .NET API 在 Microsoft Exchange Server 上移动电子邮件
要在 MS Exchange Server 上移动电子邮件,我们将使用 Aspose.Email for .NET。 API 提供了连接和使用 MS Exchange Server 的简单方法。您可以通过 NuGet 或 下载 它的 DLL 安装它。
PM> Install-Package Aspose.Email
在 C# 中将电子邮件移动到 MS Exchange Server 上的文件夹
以下是在 C# 中将电子邮件移动到 MS Exchange Server 上特定文件夹的步骤。
- 首先,使用用户名、密码、域和 URI 初始化 IEWSClient 对象。
- 然后,使用 IEWSClient.ListMessages(IEWSClient.MailboxInfo.InboxUri) 方法获取 ExchangeMessageInfoCollection 对象中的电子邮件列表。
- 之后,遍历每个 ExchangeMessageInfo 消息并过滤所需的消息。
- 然后,使用 ExchangeMessageInfo.UniqueUri 属性获取要移动的消息的 URI。
- 最后,使用 IEWSClient.CopyItem(string URI, IEWSClient.MailboxInfo.DeletedItemsUri) 方法移动电子邮件。
以下代码示例显示了如何在 C# .NET 中将电子邮件移动到 MS Exchange Server 上的文件夹。
try
{
// 通过提供凭据创建 EWSClient 类的实例
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// 调用 ListMessages 方法列出收件箱中的消息信息
ExchangeMessageInfoCollection msgCollection = client.ListMessages(client.MailboxInfo.InboxUri);
// 遍历集合以获取消息 URI
foreach (ExchangeMessageInfo msgInfo in msgCollection)
{
if (msgInfo.From.Address.Contains("jhon.vick"))
{
String strMessageURI = msgInfo.UniqueUri;
// 复制到特定文件夹
string newMessageUri = client.CopyItem(strMessageURI, client.MailboxInfo.DeletedItemsUri);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
将新电子邮件移至 MS Exchange Server 上的文件夹
您还可以将新创建的电子邮件移动到 MS Exchange Server 中的特定文件夹。以下是执行此操作的步骤。
- 首先,使用用户名、密码、域和 URI 初始化 IEWSClient 对象。
- 然后,使用 MailMessage 类创建一条新消息。
- 之后,获取 IEWSClient.AppendMessage(MailMessage) 方法返回的电子邮件的 URI。
- 最后,使用 IEWSClient.CopyItem(string URI, IEWSClient.MailboxInfo.OutboxUri) 方法移动电子邮件。
以下代码示例显示了如何将新电子邮件移至 MS Exchange Server 中的文件夹。
try
{
// 通过提供凭据创建 EWSClient 类的实例
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// 创建消息
MailMessage message = new MailMessage("from@domain.com", "to@domain.com", "EMAILNET-34997 - " + Guid.NewGuid().ToString(), "EMAILNET-34997 Exchange: Copy a message and get reference to the new Copy item");
// 获取消息 URI
string messageUri = client.AppendMessage(message);
// 复制消息
string newMessageUri = client.CopyItem(messageUri, client.MailboxInfo.OutboxUri);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
获取免费 API 许可证
您可以获得 免费的临时许可证 使用 Aspose.Email for .NET,没有评估限制。
结论
在本文中,您学习了如何使用 C# 将电子邮件移动到 Microsoft Exchange Server 中的特定文件夹。此外,您还了解了如何将新创建的电子邮件移动到 Exchange Server 中的特定文件夹。此外,您可以浏览 文档 以了解更多关于 Aspose.Email for .NET 的信息。此外,您可以通过我们的 论坛 提问。