Modelo de recepção de mensagens

Aplica-se a: Outlook 2013 | Outlook 2016

O provedor de transporte controla se o spooler MAPI deve sondá-lo para emails de entrada ou se ele executa uma chamada de volta ao spooler MAPI quando novos emails chegam. O provedor de transporte define o sinalizador de SP_LOGON_POLL quando retorna de IXPProvider::TransportLogon para solicitar sondagem. Caso contrário, o provedor de transporte usará IMAPISupport::SpoolerNotify quando o email de entrada estiver disponível. Depois de saber que o email de entrada está disponível, o spooler MAPI abre uma nova mensagem e solicita ao provedor de transporte que armazene as propriedades da mensagem recebida 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 controlem 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 de StartMessage.

  6. O spooler MAPI chama IXPLogon::TransportNotify se precisar interromper a entrega de mensagens.

Observação

Se um provedor de transporte precisar entregar 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 spooler MAPI tem lógica para evitar que isso aconteça, mas, em geral, o intervalo entre as chamadas SpoolerNotify deve ser maior do que o tempo necessário para o provedor de transporte processar uma mensagem. > Além disso, o spooler MAPI pode não processar uma mensagem de entrada imediatamente. O spooler MAPI pode solicitar que o provedor de transporte execute outras tarefas antes de receber a mensagem de entrada.