Compartir a través de


Modelo de recepción de mensajes

Hace referencia a: Outlook 2013 | Outlook 2016

El proveedor de transporte controla si el colador MAPI debe sondearlo para el correo entrante o si realiza una llamada a la cola MAPI cuando llega el nuevo correo. El proveedor de transporte establece la marca de SP_LOGON_POLL cuando vuelve de IXPProvider::TransportLogon para solicitar el sondeo. De lo contrario, el proveedor de transporte usa IMAPISupport::SpoolerNotify cuando el correo entrante está disponible. Después de saber que el correo entrante está disponible, la cola MAPI abre un nuevo mensaje y pide al proveedor de transporte que almacene las propiedades del mensaje recibido en el mensaje.

Este proceso funciona de la siguiente manera:

  1. Los mensajes disponibles se indican mediante el proveedor de transporte que llama a IMAPISupport::SpoolerNotify o por la cola MAPI que llama a IXPLogon::P oll.

  2. La cola MAPI llama a IXPLogon::StartMessage para iniciar el proceso.

  3. El proveedor de transporte coloca un valor de referencia en la ubicación a la que se hace referencia en StartMessage. Estos valores de referencia permiten que el proveedor de transporte y la cola MAPI realicen un seguimiento de qué mensaje se está procesando cuando hay varios mensajes que entregar.

  4. El proveedor de transporte almacena los datos del mensaje en la instancia de IMessage : IMAPIProp pasada.

  5. El proveedor de transporte llama al método IMAPIProp::SaveChanges en la instancia de IMessage y devuelve desde StartMessage.

  6. La cola MAPI llama a IXPLogon::TransportNotify si debe detener la entrega de mensajes.

Nota:

Si un proveedor de transporte debe entregar un gran número de mensajes y el proveedor de transporte usa IMAPISupport::SpoolerNotify en lugar de IXPLogon::P oll, se debe tener cuidado de no llamar a SpoolerNotify con demasiada frecuencia para no privar a otros proveedores de transporte del tiempo de CPU. La cola MAPI tiene lógica para evitar que esto suceda, pero, en general, el intervalo entre las llamadas SpoolerNotify debe ser mayor que el tiempo que tarda el proveedor de transporte en procesar un mensaje. > Además, es posible que la cola MAPI no procese un mensaje entrante inmediatamente. La cola MAPI puede pedir al proveedor de transporte que realice otras tareas antes de recibir el mensaje entrante.