Modelo de recepção de mensagem
Aplica-se a: Outlook 2013 | Outlook 2016
O provedor de transporte controla se o spooler MAPI deve sondar ele para emails de entrada ou se ele executa uma chamada de volta para o spooler MAPI quando o novo email chega. O provedor de transporte define o sinalizador SP_LOGON_POLL quando retorna de IXPProvider::TransportLogon para solicitar sondagem. Caso contrário, o provedor de transporte usa IMAPISupport::SpoolerNotify quando o email de entrada está disponível. Depois de saber que o email de entrada está disponível, o spooler MAPI abre uma nova mensagem e pede ao provedor de transporte para armazenar as propriedades de mensagem recebidas na mensagem.
Esse processo funciona da seguinte maneira:
As mensagens disponíveis são indicadas pelo provedor de transporte que chama IMAPISupport::SpoolerNotify ou pelo spooler MAPI chamando IXPLogon::P oll.
O spooler MAPI chama IXPLogon::StartMessage para iniciar o processo.
O provedor de transporte coloca um valor de referência no local referenciado em StartMessage. Esses valores de referência permitem que o provedor de transporte e o spooler MAPI acompanhem qual mensagem está sendo processada quando há várias mensagens a serem entregues.
O provedor de transporte armazena os dados da mensagem na instância IMessage : IMAPIProp passada.
O provedor de transporte chama o método IMAPIProp::SaveChanges na instância IMessage e retorna do StartMessage.
O spooler MAPI chama IXPLogon::TransportNotify se precisar interromper a entrega de mensagens.
Observação
Se um provedor de transporte precisar fornecer um grande número de mensagens e o provedor de transporte estiver usando IMAPISupport::SpoolerNotify em vez de IXPLogon::P oll, deve-se tomar cuidado para não chamar SpoolerNotify com muita frequência para não privar outros provedores de transporte de tempo de CPU. O carreador MAPI tem lógica para impedir que isso aconteça, mas, em geral, o intervalo entre chamadas SpoolerNotify deve ser maior do que o tempo que o provedor de transporte leva para processar uma mensagem. > Além disso, o spooler MAPI pode não processar uma mensagem de entrada imediatamente. O spooler MAPI pode pedir ao provedor de transporte para executar outras tarefas antes de receber a mensagem de entrada.