ver sincronizar mac los enviados elementos correos como carpeta aparecen aparece outlook outlook-addin mapi outlook-2013

mac - sincronizar elementos enviados outlook 2016



¿Por qué se crean MailItems en la carpeta Elementos enviados en modo redactar en Outlook 2013? (1)

En el nivel bajo (MAPI extendido), el bit MSGFLAG_UNSENT se puede eliminar de la propiedad PR_MESSAGE_FLAGS solo antes de que el elemento se guarde por primera vez (limitación de MAPI).

El único elemento OOM creado en el estado enviado es el elemento de publicación. Cree un elemento de publicación, cambie su propiedad MessageClass a IPM.Note , guárdelo, recuerde el ID de entrada del elemento, suelte el elemento de publicación utilizando Marshal.ReleaseComObject (en el caso de .Net), luego ábralo usando Namespace.GetItemfromId : lo hará tener el objeto MailItem en el estado enviado. Deberá actualizar / eliminar la propiedad PR_ICON_INDEX para asegurarse de que el icono sea el correcto.

Si usa Redención es una opción, permite establecer la propiedad Sent (antes de que se guarde), así como las SentOn / ReceivedTime / Sender / SentOnBehalfOf .

La parte superior de mi cabeza:

RDOSession rdoSession = new RDOSession(); rdoSession.MAPIOBJECT = Globals.ThisAddIn.Application.Session.MAPIOBJECT; RDOFolder rdoFolder = rdoSession.GetDefaultFolder(rdoDefaultFolders.olFolderSentMail); RDOMail rdoItem = rdoInbox.Items.Add("IPM.Note"); rdoItem.Sent = true; rdoItem.Recipients.AddEx("Joe The User", "[email protected]", "SMTP"); rdoItem.Subject = "test"; rdoItem.Body = "test body"; rdoItem.UnRead = false; rdoItem.SentOn = rdoItem.ReceivedTime = new DateTime(2016, 10, 6, 8, 44, 0); rdoItem.Sender = rdoItem.SentOnBehalfOf = rdoSession.CurrentUser; rdoItem.Save();

Tengo un complemento de Outlook 2013 que tiene un manejador de eventos de ItemSend que no puedo trabajar bien.

Lo que hace es:

  1. Enlaza todos los destinatarios (a, cc, bcc) y crea una copia separada para cada uno con solo ese correo electrónico como destinatario y los envía. Luego los borra de la carpeta de correo enviada. Esto funciona bien

  2. Crea una copia más, que tiene la información original en, cc y bcc. Utiliza el método de mover para moverlo a la carpeta Elementos enviados, porque Guardar lo colocará en Bandeja de salida. No debe enviarse realmente, debe ser solo su copia personal como si hubiera sido enviada normalmente.

  3. Establece cancel = true y cierra la ventana del inspector con descarte, por lo que el original tampoco se envía. Esto también funciona

El problema es la copia guardada. Cuando lo abro, está en modo redactar. Básicamente es lo mismo que sería un borrador. Quiero verlo como se habría enviado, en modo lectura.

Leí que la propiedad Enviada determina en qué modo mostrarla, pero esa propiedad es de solo lectura, como lo es SentOn, que es nulo y eso también sería un problema, incluso si el modo fuera el correcto. ¿Hay alguna forma de evitar esto?

Incluso traté de tomar uno de los otros correos que realmente se enviaron, desde la carpeta Elementos enviados, edito el contenido y lo guardo. Pero esto produce el mismo comportamiento. Además, MailItem tiene Sent = False y SentOn = null.

¿Podría ser porque todavía no se ha enviado, incluso si se llamó a Send-it, ya que todavía estamos ejecutando el EventHandler y no creo que Outlook realmente lo envíe en otro hilo?

De todos modos, esto no parece ser una solución alternativa.

¿Alguna idea de cómo implementar este tipo de funcionalidad?