Compartir a través de


Perfiles MAPI

Hace referencia a: Outlook 2013 | Outlook 2016

Un perfil almacena información sobre los proveedores de servicios y los servicios de mensajes instalados en un equipo. Para cada sesión, un cliente en el momento del inicio de sesión selecciona un perfil que describe los proveedores y servicios que se van a usar. Un cliente puede elegir entre una colección de perfiles y, si lo desea, establecer uno como predeterminado. El perfil predeterminado es el perfil que se selecciona automáticamente cuando un cliente inicia una sesión y no ha especificado explícitamente un perfil.

También en estos temas, encontrará una explicación de la caché de alias, que se almacena en una secuencia binaria.

Secciones de perfil

Los perfiles se dividen en secciones a las que los clientes y proveedores de servicios acceden para mostrar las propiedades de perfil a los usuarios o para realizar cambios de configuración. Una sección de perfil es un objeto MAPI que implementa la interfaz IProfSect , una interfaz que deriva de IMAPIProp y no tiene métodos adicionales. Para obtener más información, vea IProfSect : IMAPIProp. Su único propósito es manipular las propiedades de una sección de perfil. Para recuperar un puntero IProfSect a una sección de perfil determinada, los clientes y los proveedores de servicios llaman a los métodos siguientes.

Propiedad Valor
Los clientes pueden llamar a:
IMAPISession::OpenProfileSection
Los proveedores de servicios pueden llamar a:
IMAPISupport::OpenProfileSection
Los clientes o proveedores pueden llamar a:
IProviderAdmin::OpenProfileSection

Los perfiles se organizan jerárquicamente de forma muy parecida a MAPISVC. Archivo INF. En la parte superior de la jerarquía, hay secciones de perfil que contienen información relevante para el perfil. El nivel intermedio incluye secciones que contienen información sobre un servicio de mensajes determinado y el nivel inferior incluye secciones que contienen información sobre uno de los proveedores de servicios de un servicio de mensajes.

Cada perfil tiene varias propiedades necesarias que se almacenan en una o varias de las secciones del perfil. Por ejemplo, cada perfil tiene las propiedades PR_PROFILE_NAME (PidTagProfileName) y PR_SEARCH_KEY (PidTagSearchKey). La clave de búsqueda de un perfil se establece en el valor definido en MAPIGUID. H como MUID_PROFILE_INSTANCE y siempre se garantiza que sea único entre todos los perfiles. Aunque dos perfiles pueden tener el mismo nombre, no pueden tener la misma clave de búsqueda. Las claves de búsqueda deben tratarse como datos binarios en lugar de datos de cualquier tipo determinado.

Los proveedores de almacén de mensajes deben incluir la propiedad PR_DISPLAY_NAME (PidTagDisplayName) del almacén de mensajes en las secciones de perfil para el perfil y para su proveedor de almacén de mensajes y para mantener estas entradas sincronizadas. Cuando se crea un almacén de mensajes, el proveedor establece PR_DISPLAY_NAME en función del valor almacenado en estas secciones de perfil.

Hay dos diferencias importantes entre las secciones de perfil y otros objetos que heredan de IMAPIProp:

  • Las secciones de perfil no admiten transacciones.

  • Las secciones de perfil no admiten propiedades con nombre y devuelven MAPI_E_NO_SUPPORT de sus implementaciones IMAPIProp::GetIDsFromNames e IMAPIProp::GetNamesFromIDs . Para obtener más información, vea IMAPIProp::GetIDsFromNames e IMAPIProp::GetNamesFromIDs.

Dado que las secciones de perfil no admiten transacciones, los cambios realizados con las llamadas a IMAPIProp::CopyProps, CopyTo o SetProps surten efecto inmediatamente. Para obtener más información, vea IMAPIProp::CopyProps. Los clientes y proveedores de servicios pueden llamar al método IMAPIProp::SaveChanges de una sección de perfil y se realizará correctamente, pero no afecta a los datos de la sección de perfil. Para obtener más información, vea IMAPIProp::SaveChanges. El hecho de que se produzcan cambios inmediatamente puede afectar al modo en que los proveedores de servicios implementan las hojas de propiedades que los clientes usan para mostrar las propiedades de perfil a los usuarios. Los proveedores de servicios que quieran que los usuarios puedan posponer o deshacer los cambios deben implementar sus hojas de propiedades con copias de secciones de perfil en lugar de las secciones reales. Mediante el uso de copias, los usuarios pueden realizar cambios y, a continuación, cancelarlos posteriormente, dejando intactas las secciones de perfil originales.

El orden en que aparece la información en un perfil afecta a cómo MAPI configura los recursos y realiza asignaciones en una sesión. Las siguientes asignaciones se ven afectadas por el orden del perfil:

  • Almacén de mensajes predeterminado

  • Libreta de direcciones personal

  • Ruta de acceso de búsqueda predeterminada del almacén de mensajes

  • Ruta de acceso de búsqueda predeterminada de la libreta de direcciones

  • Orden del proveedor de transporte

MAPI establece el almacén de mensajes predeterminado para que sea el primer almacén de mensajes del perfil que tenga establecida la marca de STATUS_DEFAULT_STORE en su propiedad PR_RESOURCE_FLAGS (PidTagResourceFlags), lo que indica que puede ser el almacén predeterminado. Los clientes pueden invalidar esta configuración llamando a IMAPISession::SetDefaultStore. Para obtener más información, vea IMAPISession::SetDefaultStore.

MAPI crea un orden de transporte para controlar los mensajes salientes y entrantes. Cuando más de un proveedor de transporte se ha registrado para un mensaje de un tipo determinado, MAPI usa este orden para determinar qué proveedor debe controlar el mensaje. MAPI establece el orden de transporte para que sea el orden en el que los proveedores de transporte se agregaron al perfil con una excepción: los transportes que establecen la marca de STATUS_XP_PREFER_LAST en su propiedad PR_RESOURCE_FLAGS se colocan en último lugar en el orden. Los clientes pueden establecer el orden de transporte llamando a IMsgServiceAdmin::MsgServiceTransportOrder. Para obtener más información, vea IMsgServiceAdmin::MsgServiceTransportOrder.

A veces, estas directrices para ordenar proveedores de servicios y servicios de mensajes pueden entrar en conflicto. Si hay un conflicto, el código debe resolver el conflicto. Puede usar el programa Mail Panel de control para inspeccionar un perfil que ha creado para determinar si los proveedores se han configurado según lo esperado.