如何在 C# 中使用 EWS API 设置类别标志颜色

Posted

技术标签:

【中文标题】如何在 C# 中使用 EWS API 设置类别标志颜色【英文标题】:How to set a category flag colour using EWS API in C# 【发布时间】:2017-02-13 12:16:13 【问题描述】:

我正在尝试使用 EWS API 从 Microsoft Outlook 中的交换文件夹中获取邮件项目。

目前我可以使用

设置邮件项目类别
 Item item = Item.Bind(service, findResults.ElementAt(0).Id);
            // Update the category 
            if (!item.Categories.Contains("mymessage"))
            
                item.Categories.Add("mymessage");
            

然后我可以看到带有类别集的相应邮件。

如何为 mailItem 类别添加颜色...例如可用的颜色标志(蓝色或绿色)?

【问题讨论】:

你试过什么?有许多可用的参考资料,如下所示:infinitec.de/post/2011/07/28/… 我不知道如何开始...我正在寻找扩展属性..但找不到任何东西 我还看到 Categories 是一个字符串列表.. 所以这也是一个死胡同 你看过我链接的文章了吗? 这将为我提供可用类别颜色的列表,并允许我添加类别。但如何将其添加到特定邮件项目? 【参考方案1】:

要获取现有类别的列表,您可以使用:https://social.msdn.microsoft.com/Forums/en-US/e5c5f072-0b5c-49ce-9db7-57f76f5e011e/edit-master-category-list-in-exchange-2010-via-ews?forum=exchangesvrdevelopment

代码不再编译,您应该更改:

 UserConfiguration owaCategories = new UserConfiguration(
        this.service,
        "CategoryList",
        parentFolderId);

收件人:

 UserConfiguration owaCategories = UserConfiguration.Bind(
       this.service,
       "CategoryList",
       parentFolderId, 
       UserConfigurationProperties.XmlData);

然后你可以使用类似的东西:

    var cat = new MasterCategoryList(exchange, userMailbox);
    cat.Load();
    EmailMessage email = EmailMessage.Bind(exchange, item.Id);
    email.Categories.Add(cat.Last().Name);// or anything so you find the category you want
    email.Update(ConflictResolutionMode.AutoResolve);

如果你想添加一个类别,你可以添加一些代码修改:owaCategories.XmlData 并在MasterCategoryList 中使用owaCategories.Update()

【讨论】:

以上是关于如何在 C# 中使用 EWS API 设置类别标志颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 EWS 托管 API 从 Microsoft Exchange 检索所有联系人?

如何使用 EWS Java API (Exchange Web Service) 设置联系人标题?

使用 EWS(不是托管 API)进行模拟

EWS API 2013 日历:在商店中找不到指定的文件夹

EWS API - 在会议上更新

如何使用 EWS 托管 API 2.0 创建笔记