发送前添加到MailItem的类别不会保留

时间:2015-03-24 13:20:22

标签: c# outlook outlook-addin

我拦截了Outlook 2013的Application.ItemSend事件,以便在发送之前操纵分配给MailItem的类别。这是事件处理程序:

void Application_ItemSend(object Item, ref bool Cancel)
{
    var mail = (Outlook.MailItem)Item;
    mail.Categories = string.Join(";", "Foo", "Bar"); // Yes, the delimiter is ';' on my system.
    mail.Save(); // Do I need this?
}

问题是Categories属性的更改似乎没有得到妥善保留。当我在“已发送”文件夹中查看邮件时,它显示为未分类。

奇怪的是,如果我在更改类别后调用mail.ShowCategoriesDialog(),则会按预期检查它们。这让我怀疑我是在操作一条消息。

我做错了什么?


似乎问题是服务器配置而不是我的代码。将Outlook连接到GMail后,它按预期工作。

1 个答案:

答案 0 :(得分:1)

在配置了Gmail帐户的Outlook 2013(64位)上,它对我有用。即,我可以看到在所有步骤中应用的类别 - 即,在Visual Studio 2013中应用类别时,在发件箱中以及在已发送邮件文件夹中。

可能的原因 - 某些插件可能正在删除“已发送邮件”文件夹中的类别。尝试禁用其他插件。