saber reenviado redactar para leyeron leido fue electronico ejemplos correo como app email outlook exchangewebservices

email - redactar - ¿Cómo saber si un correo es un correo reenviado?



como saber si ya leyeron un correo (1)

Tengo un problema muy especial

Si creamos un correo en Outlook, agregamos una propiedad de usuario que contiene una ID de base de datos de nuestro sistema, por lo que podemos vincular el correo al elemento de base de datos que lo representa. En el servicio que lee los correos en cada buzón y los importa automáticamente, puedo leer esta propiedad usando ExtendedPropertyDefinitions. Hasta ahora todo está bien ...

Si el Usuario ahora reenvía el mensaje en Outlook, Olk copia la Propiedad del Usuario al nuevo mensaje. Y ahora mis problemas comienzan. Ahora mi Servicio cree que el nuevo mensaje también está vinculado a nuestra base de datos y actualiza DB-Entry con el nuevo Cuerpo y el nuevo Asunto.

Entonces, ¿alguien ahora puede averiguar si un mensaje es reenviado o cómo decirle a Outlook que no copie la propiedad del usuario al mensaje reenviado (nuevo)?

Gracias. Arrendajo

En lo que pensamos, pero no está funcionando para nuestro caso
- una segunda propiedad de usuario que contiene una etiqueta simple linke "fromSystem". Porque esto también se copiaría.
- una segunda propiedad de usuario que contiene un hashsum calculado a partir de sujeto y cuerpo. Porque ambos pueden ser cambiados por el usuario. Simplemente creamos el mensaje, agregamos todas las propiedades y lo visualizamos. a partir de este punto, ya no tenemos control de lo que está sucediendo con el correo hasta que el servicio lo maneje.


El servicio que consume EWS debe verificar el ConversationIndex y solo actualizar la base de datos si tiene 22 bytes de longitud ( mensaje fuente original ). Los correos electrónicos de reenvío y de respuesta continúan añadiendo 5 bytes ( 10 caracteres ) a ConversationIndex extendiéndolo más allá de 22 bytes.

Sample ConversationIndexes

Original: 01CDD15D80E51C1D4522172840ACA96287DA28A15D97 Reply: 01CDD15D80E51C1D4522172840ACA96287DA28A15D970000018630 Forward: 01CDD15D80E51C1D4522172840ACA96287DA28A15D970000018630000000FC30

ConversationIndex representa el orden secuencial de ConversationTopic ( esencialmente GUID + timestamp ). Consulte Trabajar con conversaciones en MSDN . ConversationIndex está explícitamente definido en MSDN aquí .

if (message.ConversationIndex.Length == 22) { // update DB body, subject, etc. }

También asegúrese de cargar el EmailMessageSchema.ConversationIndex antes de intentar acceder a su valor.