2011-07-27 12 views
27

Subskrybuję konto e-mail przy użyciu usługi Exchange Web Services 2007 i przetwarzanie załączników w miarę nadejścia nowych wiadomości e-mail. Chciałbym oznaczyć te wiadomości jako "przeczytane" na serwerze po Skończyłem je przetwarzać, ale stwierdzam, że nie jest tak proste, jak ustawienie właściwości "IsRead" na wartość true. Ja nawet nie próbował, co następuje:Oznaczanie wiadomości e-mail jako przeczytane za pomocą usługi Exchange Web Services 2007

Dim msg As EmailMessage 
msg.Load(New PropertySet({EmailMessageSchema.IsRead})) 
msg.IsRead = True 

Próbowałem to po stwierdzeniu, że miałem załadować specyficzne właściwości schematu gdybym chciał wchodzić w interakcje z niektórymi częściami wiadomości (jak załącznikami). Próbowałem również bezpośrednio powiązać wiadomość z nowym obiektem i załadować dodatkowe właściwości:

Dim iID as ItemId = msg.Id 
Dim tmpMsg as EmailMessage = EmailMessage.Bind(service, iID, New PropertySet(BasePropertySet.FirstClassProperties, EmailMessageSchema.IsRead)) 
tmpMsg.IsRead = True 

Nie mam szczęścia. Przeszukałem go i znalazłem one MSDN blog example, który wygląda na to, że powinien działać, ale ma pewne klasy, których nie mogę znaleźć (jak klasa Microsoft.Exchange.WebServices.SetItemFieldType, wszystko co mam w przestrzeni nazw WebServices to przestrzenie nazw Data i AutoDiscover, żadnych zajęć lub czegokolwiek). A ponieważ nie mogę znaleźć tych klas ani niczego podobnego, utknąłem. Wymienił również przykład DAV, ale jego kod używa klas, których nie mogę znaleźć w mojej wersji biblioteki DLL EWS (14.0.0.0). Próbowałem pobrać najnowsze API od Microsoft, ale wydawało mi się, że jest to ta sama wersja co już mam.

Moje pytanie brzmi: czy istnieje sposób oznaczania elementu jako przeczytanego za pomocą usług internetowych Exchange 2007?

Odpowiedz

37

Musisz wywołać metodę tmpMsg.Update, aby kontynuować zmiany na serwerze.

+1

Niewiarygodne - to wszystko. Dzięki! – mounty

Powiązane problemy