vba - recibir - Abra el elemento de correo de Outlook utilizando EntryID, StoreID y/o PR_ENTRYID
marcar todos los correos como leidos outlook (2)
Para C #:
var ns = OutlookApp.GetNamespace("MAPI");
var item = ns.GetItemFromID(entryId) as MailItem;
Donde OutlookApp tiene el tipo Microsoft.Office.Interop.Outlook._Application.
NOTA: Estoy usando VBA y Office 2007. (Usaría C #, pero los parámetros del proyecto no lo permiten)
Estoy intentando encontrar algún método en Outlook, o una API, que me permita abrir un elemento de correo de Outlook al proporcionar el EntryID de Outlook o la propiedad "PR_ENTRYID" de MAPI de una base de datos de Access. He encontrado muchas referencias a dicho código, pero nunca he visto a nadie publicar una solución. He intentado incluir referencias a mapi32.dll y OLMAPI32.dll, pero aparece el siguiente error: "No se puede agregar una referencia al archivo especificado". Supongo que esto se debe a que esos dll están destinados a .NET.
Cualquier ayuda que pueda dar sería muy apreciada.
Use Namespace.GetItemFromID
. Tenga en cuenta que el segundo parámetro (identificador de tienda) es opcional. Puede omitirlo si la tienda en cuestión ya fue tocada por Outlook en la sesión actual. De lo contrario, Outlook generará la excepción de "identificación de entrada desconocida". Si se especifica el ID de entrada de la tienda, Outlook lo abrirá primero y el proveedor de la tienda tendrá la oportunidad de registrar sus ID de entrada con el sistema MAPI.
set App = CreateObject("Outlook.Application")
set NS = App.GetNamespace("MAPI")
NS.Logon
set Msg = NS.GetItemFromID(EntryID)
MsgBox Msg.Subject