绑定复制的邮件

时间:2017-06-19 11:47:34

标签: c# exchangewebservices

我有一个功能来复制子文件夹中的电子邮件,同时在多个附件的情况下应用类别。

void CopyInSubfolder(EmailMessage email, bool categorize)
{
    PropertySet propSet = new PropertySet(BasePropertySet.IdOnly, EmailMessageSchema.ParentFolderId);
    Item item = email.Copy(_subFolder);
    EmailMessage copiedMessage = EmailMessage.Bind(service, item.Id, propSet);
    if (categorize)
        copiedMessage.SetCategory("MULTIPLE ATTACHMENTS");
}

成为SetCategory一个简单的扩展方法:

public static void SetCategory(this EmailMessage pContainer, string pCategory)
{
    StringList ExistingCategories = pContainer.Categories;
    if(!ExistingCategories.Contains(pCategory))
    { 
        ExistingCategories.Add(pCategory);
    }
    pContainer.Update(ConflictResolutionMode.AutoResolve);
}

问题在于,当我尝试在SetCategory项上运行CopiedMessage方法时,无论消息已有多少现有类别,我总是会得到一个空的StringList对象。如果我尝试在原始消息上调用该方法,它按预期工作,所以我想我无法绑定到复制的消息。我使用this how-to article on MSDN作为复制部分。

1 个答案:

答案 0 :(得分:0)

我改变了

PropertySet propSet = new PropertySet(BasePropertySet.IdOnly, EmailMessageSchema.ParentFolderId)

PropertySet propSet = new PropertySet(BasePropertySet.IdOnly, EmailMessageSchema.Categories)

我认为绑定会将新对象绑定到整个项目,但我想这并不是它的工作方式。