Acceder y gestionar propiedades MAPI de Outlook

MAPI properties son elementos de metadatos usados en los mensajes de Microsoft Outlook, que definen atributos como remitente, destinatario, asunto, archivos adjuntos y datos personalizados.

Aspose.Email for C++ permite a los desarrolladores acceder, modificar y eliminar estas propiedades programáticamente en MapiMessage objetos, archivos adjuntos y propiedades con nombre.

El MapiProperty La clase representa una propiedad MAPI, que contiene:

  • Name – El identificador de cadena de la propiedad.
  • Tag – Un identificador numérico usado para referenciar la propiedad.
  • Data – Una matriz de bytes que representa el valor de la propiedad.

Leer propiedades MAPI

Aspose.Email permite leer propiedades MAPI usando etiquetas de propiedad.

El siguiente ejemplo de código muestra cómo leer y mostrar la propiedad de asunto de un archivo de mensaje MAPI (.msg).

  1. Obtén la ruta del directorio donde se almacenan los archivos de mensaje de Outlook.
  2. Carga el archivo de mensaje de Outlook ("message.msg") en un MapiMessage objeto.
  3. Accede a la colección de propiedades MAPI del mensaje.
  4. Intenta recuperar la propiedad de asunto usando PR_SUBJECT (ANSI) etiqueta.
  5. Si no se encuentra la propiedad de asunto ANSI, intenta recuperar la propiedad de asunto Unicode usando PR_SUBJECT_W.
  6. Si la propiedad de asunto existe, muestra su valor de cadena en la consola.

Establecer propiedades MAPI

Las propiedades MAPI pueden establecerse para mensajes o destinatarios para definir atributos personalizados, tipo de correo electrónico o estado de sincronización.

El siguiente ejemplo de código muestra cómo crear un mensaje MAPI, establecer múltiples propiedades MAPI personalizadas incluyendo detalles del remitente y destinatario, banderas del mensaje y la hora de modificación, y luego guardar el mensaje en un archivo.

Nota: El ayudante ConvertDateTime() convierte System::DateTime a una matriz de bytes de filetime compatible con MAPI para propiedades de fecha/hora de la siguiente manera:

int64_t filetime = t.ToFileTime();

System::ArrayPtr<uint8_t> d = System::MakeArray<uint8_t>(8, 0);

d[0] = (uint8_t)(filetime & 0xFF);

d[1] = (uint8_t)((filetime & 0xFF00) >> 8);

d[2] = (uint8_t)((filetime & 0xFF0000) >> 16);

d[3] = (uint8_t)((filetime & 0xFF000000) >> 24);

d[4] = (uint8_t)((filetime & 0xFF00000000) >> 32);

d[5] = (uint8_t)((filetime & 0xFF0000000000) >> 40);

d[6] = (uint8_t)((filetime & 0xFF000000000000) >> 48);

d[7] = (uint8_t)(((uint64_t)filetime & 0xFF00000000000000) >> 56);

Leer Propiedades MAPI con Nombre

Named MAPI properties son propiedades personalizadas añadidas por usuarios o aplicaciones.

Aspose.Email permite leer estas propiedades de los mensajes y archivos adjuntos.

Lectura de propiedades MAPI con nombre de archivos MSG

El siguiente ejemplo de código muestra cómo cargar un archivo de mensaje MAPI, recuperar todas sus propiedades MAPI con nombre y recorrerlas para encontrar y mostrar los valores de propiedades con nombre específicas ("TEST" y "MYPROP"). Demuestra cómo acceder a propiedades personalizadas o extendidas en un mensaje MAPI enumerando la colección de propiedades y procesando condicionalmente las propiedades según sus identificadores de nombre.

Acceso a propiedades MAPI con nombre en archivos adjuntos

Las propiedades MAPI con nombre en los archivos adjuntos pueden recuperarse de manera similar:

Eliminación de propiedades MAPI

Puedes eliminar tanto las propiedades MAPI estándar como las con nombre de mensajes o archivos adjuntos, como se muestra en el siguiente ejemplo de código: