Desarrollar un proveedor de almacén de mensajes de MAPI
Hace referencia a: Outlook 2013 | Outlook 2016
Al igual que otros proveedores de servicios MAPI, los almacenes de mensajes son bibliotecas de vínculos dinámicos (DLL) que presentan los servicios de un mecanismo de almacenamiento subyacente a las aplicaciones cliente MAPI y la cola MAPI. El proveedor de almacén de mensajes presenta el mecanismo de almacenamiento subyacente como un conjunto jerárquico de carpetas y mensajes que los clientes MAPI y la cola MAPI pueden usar.
En la ilustración siguiente se muestra la arquitectura básica del almacén de mensajes MAPI.
Arquitectura del almacén de mensajes
Puede implementar un proveedor de almacén de mensajes mediante cualquier tipo de mecanismo de almacenamiento subyacente que desee. Sin embargo, debe tener en cuenta los problemas de rendimiento. Además, el mecanismo de almacenamiento subyacente debe presentarse como una colección jerárquica de objetos MAPI. Estos requisitos significan que los almacenes de mensajes se implementan normalmente mediante un producto de base de datos existente que admite el almacenamiento jerárquico de objetos en la base de datos y que tiene una interfaz de programación o una estructura de archivos bien definida. Por ejemplo, las bases de datos de Microsoft Office Access, SQL y Oracle se pueden usar como mecanismo de almacenamiento subyacente. Algunos productos de base de datos tienen conjuntos de características que facilitan la implementación de características MAPI, por lo que la elección del producto de base de datos puede verse afectada por las características que el proveedor del almacén de mensajes necesita admitir.
El uso de una base de datos existente como mecanismo de almacenamiento subyacente le permite trabajar porque normalmente es más fácil presentar objetos de base de datos a clientes MAPI como objetos MAPI que implementar su propio mecanismo de almacenamiento jerárquico. Esto le permite tratar las operaciones MAPI en un nivel superior que si implementa su propio mecanismo de almacenamiento jerárquico. Por ejemplo, buscar un mensaje con una línea de asunto determinada se convierte en una cuestión bastante sencilla de construir y enviar una consulta de base de datos adecuada, en lugar de implementar rutinas complejas para buscar en el mecanismo de almacenamiento jerárquico.
Los proveedores de almacén de mensajes se comunican con los clientes MAPI y la cola MAPI para realizar operaciones en carpetas y objetos. El proveedor del almacén de mensajes traduce esas operaciones en operaciones de nivel inferior en el mecanismo de almacenamiento subyacente. La cola MAPI normalmente se comunica con el proveedor del almacén de mensajes al enviar y recibir mensajes. Los clientes MAPI normalmente se comunican con proveedores de almacén de mensajes para manipular la jerarquía de carpetas y para leer, editar, eliminar y enviar mensajes.
Tanto el colador MAPI como los clientes MAPI se comunican con el proveedor del almacén de mensajes para crear nuevos mensajes. Las aplicaciones cliente lo hacen cuando los usuarios redacta un mensaje. La cola MAPI lo hace cuando recibe un mensaje entrante. En cualquier caso, el nuevo mensaje se crea normalmente en la carpeta Bandeja de entrada del almacén de mensajes, si hay uno.
Los proveedores de almacén de mensajes hacen un uso intensivo de las tablas, carpetas, mensajes y propiedades MAPI. Los detalles de implementación de esos objetos se documentan en Tablas MAPI, Carpetas MAPI, Mensajes MAPI e Información general sobre la propiedad MAPI. Debe familiarizarse con ese material antes de intentar implementar un proveedor de almacén de mensajes.
Hay dos tipos importantes de proveedores de almacén de mensajes: los que pueden actuar como almacén de mensajes predeterminado de un usuario y los que no. Un almacén de mensajes predeterminado es aquel en el que las aplicaciones cliente y la cola MAPI pueden realizar cualquier tarea de mensajería, como recibir mensajes o crear carpetas. Un proveedor de almacén de mensajes predeterminado debe admitir varias características más que el número mínimo necesario para todos los proveedores de almacén de mensajes.