在 Microsoft Exchange Server 中,电子邮件被组织在不同的文件夹中,例如收件箱、发件箱等。此外,您可以根据需要创建自己的文件夹或子文件夹。在使用 MS Exchange Server 时,您可能需要以编程方式创建自定义文件夹。在本文中,您将了解如何使用 EWS 在 C# .NET 中的 MS Exchange Server 上创建文件夹或子文件夹。此外,我们还将介绍如何删除 Exchange Server 上的文件夹。
- .NET API 在 MS Exchange Server 上使用 EWS 创建文件夹
- 在 MS Exchange Server 上创建文件夹
- 在 MS Exchange Server 上创建子文件夹
- 删除 MS Exchange Server 上的文件夹
在 MS Exchange Server 上创建文件夹的 C# .NET API
要在 MS Exchange Server 上使用 EWS 管理文件夹,我们将使用 Aspose.Email for .NET。该 API 使得在 .NET 应用程序中使用 Exchange Server 的服务变得相当容易。您可以 下载 API 的 DLL 或使用以下命令从 NuGet 安装它。
PM> Install-Package Aspose.Email
用 C# 在 MS Exchange Server 上创建文件夹
以下是使用 C# 在 MS Exchange Server 上创建文件夹的步骤。
- 连接到 MS Exchange Server 并在 IEWSClient 中获取 EWS 客户端对象。
- 指定根文件夹的名称和要创建的文件夹。
- 使用 IEWSClient.CreateFolder(string, string) 方法创建文件夹。
以下代码示例显示了如何使用 C# 中的 EWS 在 MS Exchange Server 上创建文件夹。
// 通过提供凭据创建 EWSClient 类的实例
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// 获取收件箱 URI(在收件箱中创建文件夹)
string inbox = client.MailboxInfo.InboxUri;
// 指定文件夹名称
string folderName1 = "EMAILNET-35054";
try
{
// 创建文件夹
client.UseSlashAsFolderSeparator = true;
client.CreateFolder(client.MailboxInfo.InboxUri, folderName1);
}
catch
{
// 做一点事
}
用 C# 在 MS Exchange Server 上创建子文件夹
要创建子文件夹,您首先需要检查父文件夹是否存在。如果是,只需创建子文件夹,否则先创建父文件夹。以下步骤演示了如何使用 C# 在 MS Exchange Server 上创建子文件夹。
- 连接到 MS Exchange Server 并在 IEWSClient 中获取 EWS 客户端对象。
- 指定根文件夹和子文件夹的名称。
- 使用 IEWSClient.FolderExists(string, string, ExchangeFolderInfo) 方法检查父文件夹是否存在。如果没有,请创建一个。
- 使用 IEWSClient.CreateFolder(string, string) 方法创建子文件夹。
下面的代码示例展示了如何使用 C# 在 MS Exchange Server 上创建子文件夹。
// 通过提供凭据创建 EWSClient 类的实例
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// 获取收件箱 URI
string inbox = client.MailboxInfo.InboxUri;
// 指定文件夹名称
string folderName1 = "EMAILNET-35054";
// 指定子文件夹名称
string subFolderName = "2015";
string folderName2 = folderName1 + "/" + subFolderName;
ExchangeFolderInfo rootFolderInfo = null;
try
{
client.UseSlashAsFolderSeparator = true;
if (!client.FolderExists(inbox, folderName1, out rootFolderInfo))
{
// 创建文件夹
rootFolderInfo = client.CreateFolder(inbox, folderName1);
}
// 创建子文件夹
client.CreateFolder(inbox, folderName2);
}
catch
{
// 做一点事
}
在 C# 中删除 MS Exchange Server 上的文件夹
以下是在 C# 中删除 MS Exchange Server 上的文件夹的步骤。
- 连接到 MS Exchange Server 并在 IEWSClient 中获取 EWS 客户端对象。
- 使用 IEWSClient.FolderExists(string, string, ExchangeFolderInfo) 方法检查文件夹是否存在。
- 使用 IEWSClient.DeleteFolder(string, bool) 方法删除文件夹。
以下代码示例显示了如何在 C# 中删除 MS Exchange Server 上的文件夹。
// 通过提供凭据创建 EWSClient 类的实例
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// 获取收件箱 URI
string inbox = client.MailboxInfo.InboxUri;
// 指定文件夹名称
string folderName1 = "EMAILNET-35054";
ExchangeFolderInfo rootFolderInfo = null;
try
{
// 检查文件夹是否存在
if (client.FolderExists(inbox, folderName1, out rootFolderInfo))
{
// 删除文件夹
client.DeleteFolder(rootFolderInfo.Uri, true);
}
}
catch
{
// 做一点事
}
获取免费 API 许可证
您可以获得 免费的临时许可证 以使用 Aspose.Email for .NET,而不受评估限制。
结论
在本文中,您了解了如何使用 C# 中的 EWS 处理 Microsoft Exchange Server 上的文件夹。在代码示例的帮助下,您已经了解了如何使用 C# 以编程方式在 MS Exchange Server 上创建和删除特定文件夹。此外,您可以浏览 文档 以了解更多关于 Aspose.Email for .NET 的信息。此外,您可以通过我们的 论坛 提问。