Ich habe eine Funktion, um eine E-Mail-Nachricht in einen Unterordner zu kopieren, wobei im Falle mehrerer Anhänge auch eine Kategorie angewendet wird.An eine kopierte Nachricht binden
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");
}
ist SetCategory
eine einfache Erweiterung Methode:
public static void SetCategory(this EmailMessage pContainer, string pCategory)
{
StringList ExistingCategories = pContainer.Categories;
if(!ExistingCategories.Contains(pCategory))
{
ExistingCategories.Add(pCategory);
}
pContainer.Update(ConflictResolutionMode.AutoResolve);
}
Das Problem ist, dass, wenn ich versuche, die SetCategory
Methode auf dem CopiedMessage
Artikel zu laufen, habe ich immer ein leeres StringList
Objekt erhalten, unabhängig davon, wie viele bestehende Kategorien, die die Nachricht bereits hat. Wenn ich versuche, die Methode für die ursprüngliche Nachricht aufzurufen, funktioniert sie wie vorgesehen. Daher habe ich Probleme mit der kopierten Nachricht. Ich habe this how-to article on MSDN für den Kopierteil verwendet.