2011-07-27 24 views
27

Estoy suscrito a una cuenta de correo electrónico utilizando Exchange Web Services 2007 y procesando archivos adjuntos a medida que ingresan nuevos correos electrónicos. Me gustaría marcar esos correos como "leídos" en el servidor después He terminado de procesarlos, pero me parece que no es tan simple como establecer la propiedad "IsRead" en verdadero. Incluso he intentado lo siguiente:Marcando un mensaje de correo electrónico leído usando Exchange Web Services 2007

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

yo probamos este después de descubrir que tenía que cargar propiedades específicas de esquema si quería interactuar con ciertas partes del mensaje (como archivos adjuntos). También intenté vincular directamente el mensaje a un nuevo objeto y cargar propiedades adicionales:

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

No recibo ninguna suerte. He buscado en Google y encontré one MSDN blog example que parece que debería funcionar, pero tiene algunas clases que no puedo encontrar (como la clase Microsoft.Exchange.WebServices.SetItemFieldType; todo lo que tengo en el espacio de nombres WebServices son los espacios de nombres Data y AutoDiscover, sin clases ni nada). Y como no puedo encontrar esas clases o algo similar, estoy un poco atrapado. También enumeró un ejemplo de DAV pero, de nuevo, su código usa clases que no puedo encontrar en mi versión de EWS dll (que es 14.0.0.0). Traté de descargar la última API de Microsoft pero parecía ser la misma versión que la que ya tengo.

Así que mi pregunta es, ¿hay alguna manera de marcar un elemento como leído utilizando los servicios web de Exchange 2007?

Respuesta

37

Debe llamar al método tmpMsg.Update para que los cambios vuelvan al servidor.

+1

Increíble, eso es todo lo que era. ¡Gracias! – mounty

Cuestiones relacionadas