J'ai une fonction pour copier un e-mail dans un sous-dossier, en appliquant également une catégorie en cas de pièces jointes multiples.Liaison sur un message copié
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");
}
étant SetCategory
une méthode simple d'extension:
public static void SetCategory(this EmailMessage pContainer, string pCategory)
{
StringList ExistingCategories = pContainer.Categories;
if(!ExistingCategories.Contains(pCategory))
{
ExistingCategories.Add(pCategory);
}
pContainer.Update(ConflictResolutionMode.AutoResolve);
}
Le problème est que lorsque je tente d'exécuter la méthode SetCategory
sur l'élément CopiedMessage
, je reçois toujours un objet StringList
vide, peu importe combien de catégories existantes que le message a déjà. Si j'essaie d'appeler la méthode sur le message d'origine, cela fonctionne comme prévu, donc je suppose que je rencontre des difficultés pour lier le message copié. J'ai utilisé this how-to article on MSDN pour la partie copie.