Trabajando con propiedades MAPI
Acceder y establecer propiedad MAPI de Outlook
La clase MapiProperty representa una propiedad MAPI, que contiene:
- Nombre: una cadena que representa el nombre de la propiedad.
- Etiqueta: un entero largo que representa la etiqueta de la propiedad.
- Datos: una matriz de bytes que representa los datos de la propiedad.
Obtener propiedad MAPI usando la etiqueta de propiedad MAPI
Para obtener propiedades MAPI:
- Cree una instancia de MapiMessage cargando desde archivos o flujo.
- Obtenga la MapiProperty de MapiMessage.Properties mediante claves MapiPropertyTag.
- Obtenga los datos de MapiProperty mediante el método GetX.
El siguiente fragmento de código muestra cómo obtener una propiedad MAPI usando la etiqueta de propiedad MAPI.
Estableciendo propiedades MAPI
El siguiente fragmento de código le muestra cómo establecer propiedades MAPI.
donde la definición del método convertDateTime es la siguiente:
Leyendo propiedades MAPI con nombre de archivos Outlook MSG
Aspose.Email proporciona un conjunto de API para trabajar con archivos MSG, incluida la extracción de propiedades MAPI con nombre.
Leer propiedades MAPI con nombre desde archivo MSG
Para leer propiedades MAPI con nombre, podemos usar la propiedad named_properties de MapiMessage clase. El siguiente ejemplo de código muestra cómo cargar un mensaje, recuperar todas las propiedades MAPI con nombre, iterar sobre cada propiedad para comprobar su valor:
import aspose.email as ae
msg = ae.mapi.MapiMessage.load("my.msg")
# Get all named MAPI properties
properties = msg.named_properties.values
# Read all properties in foreach loop
for prop in properties:
# Read any specific property
if prop.descriptor.canonical_name == "PidLidSideEffects":
print(f"{prop.descriptor.canonical_name} = {prop}")
if prop.descriptor.canonical_name == "PidLidInternetAccountName":
print(f"{prop.descriptor.canonical_name} = {prop}")
Leer propiedad MAPI nombrada desde adjunto
Aspose.Email permite recuperar todas las propiedades MAPI con nombre de un adjunto. El siguiente ejemplo de código muestra cómo leer propiedades MAPI con nombre de los adjuntos:
import aspose.email as ae
msg = ae.mapi.MapiMessage.load("my.msg")
# Get all named MAPI properties
attach_properties = msg.attachments[0].named_properties.values
# Read all properties in foreach loop
for prop in attach_properties:
# Read any specific property
if prop.descriptor.name == "AttachmentOriginalUrl":
print(f"{prop.descriptor.name} = {prop.get_string()}")
if prop.descriptor.name == "AttachmentWasSavedToCloud":
print(f"{prop.descriptor.name} = {prop.get_boolean()}")
Eliminar propiedades de MSG y adjuntos
Este ejemplo de código demuestra la creación de un mensaje Outlook MSG con contenido en el cuerpo y un archivo de mensaje adjunto. También muestra cómo eliminar una propiedad de adjunto del mensaje creado.
import aspose.email as ae
# create an MSG
msg = ae.mapi.MapiMessage("from@doamin.com", "to@domain.com", "subject", "body");
msg.set_body_content("<html><body><h1>This is the body content</h1></body></html>", ae.mapi.BodyContentType.HTML)
# load message and add it to created MSG as attachment
attachment = ae.mapi.MapiMessage.load(attach.msg")
msg.attachments.add("Outlook2 Test subject.msg", attachment)
# count of attachment properties before removal
print(f"Before removal = {msg.attachments[0].properties.count}")
# Delete anyone attachment property
msg.attachments[0].remove_property(923467779)
# count of attachment properties after removal
print(f"Before removal = {msg.attachments[0].properties.count}")