Compartilhar via


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:

  1. As mensagens disponíveis são indicadas pelo provedor de transporte que chama IMAPISupport::SpoolerNotify ou pelo spooler MAPI chamando IXPLogon::P oll.

  2. O spooler MAPI chama IXPLogon::StartMessage para iniciar o processo.

  3. 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.

  4. O provedor de transporte armazena os dados da mensagem na instância IMessage : IMAPIProp passada.

  5. O provedor de transporte chama o método IMAPIProp::SaveChanges na instância IMessage e retorna do StartMessage.

  6. 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.