visual vfp msxml2 leer importar crear chilkat xml automation outlook visual-foxpro

msxml2 - VFP: ¿Cómo puedo acceder al contenido de un archivo adjunto de Outlook?



visual foxpro xml (2)

Si usaba C ++ o MAPI, podría usar MAPI extendido para abrir la propiedad PR_ATTACH_DATA_BIN como IStream.

En VFP puede probar el canje : tanto el elemento Safe * como la familia de objetos RDO exponen la propiedad AsArray (así como AsText y AsStream).

En Outlook 2007 y versiones posteriores también puede usar Attachment.PropertyAccessor.GetProperty para leer la propiedad PR_ATTACH_DATA_BIN (nombre DASL " http://schemas.microsoft.com/mapi/proptag/0x37010102")

Tengo un programa que lee y envía correos electrónicos usando la automatización de Outlook, desde Visual FoxPro.

Tengo funciones para recuperar y guardar archivos adjuntos, pero me gustaría leer el contenido de un archivo adjunto a una cadena sin guardar el archivo en el disco.

En el ejemplo a continuación, ejemplifico Outlook, recojo un espacio de nombres y una referencia a la bandeja de entrada del usuario actual. Luego selecciono una referencia a un mensaje arbitrario (número 32 en la bandeja de entrada) y una referencia al archivo adjunto del mensaje.

oOutlook = createobject(''Outlook.Application'') oNamespace = oOutlook.GetNamespace(''MAPI'') oInbox = oNamespace.GetDefaultFolder(olFolderInbox) oMessage = Inbox.Items[32] oAttachment = oMessage.Attachments[1]

En este punto yo llamaría:

oAttachment.SaveAsFile(''C:/Example/File1.xml'')

para guardar el archivo en el disco.

Lo que quiero hacer es leer el contenido del archivo en una cadena, sin guardarlo en el disco.

En esta instancia particular, el archivo es XML.


Lamentablemente, no hay forma de almacenar un archivo adjunto de Outlook en la memoria sin usar bibliotecas de terceros, si tiene más de 8 KB de tamaño.

En Outlook 2007, puede llamar a Attachment.PropertyAccessor.GetProperty para leer la propiedad PR_ATTACH_DATA_BIN en la memoria si el archivo adjunto es de menos de 8 KB.

Como se mencionó, la redención es la mejor opción si usa una biblioteca de terceros.