Nachrichtenempfangsmodell
Gilt für: Outlook 2013 | Outlook 2016
Der Transportanbieter steuert, ob der MAPI-Spooler ihn für eingehende E-Mails abfragen muss oder ob er beim Eintreffen neuer E-Mails einen Rückruf an den MAPI-Spooler ausführt. Der Transportanbieter legt das SP_LOGON_POLL-Flag fest, wenn er von IXPProvider::TransportLogon zurückgibt, um Abrufe anzufordern. Andernfalls verwendet der Transportanbieter IMAPISupport::SpoolerNotify , wenn eingehende E-Mails verfügbar sind. Nachdem Sie erfahren haben, dass eingehende E-Mails verfügbar sind, öffnet der MAPI-Spooler eine neue Nachricht und fordert den Transportanbieter auf, die empfangenen Nachrichteneigenschaften in der Nachricht zu speichern.
Dieser Prozess funktioniert wie folgt:
Verfügbare Nachrichten werden entweder durch den Transportanbieter angegeben, der IMAPISupport::SpoolerNotify aufruft, oder durch den MAPI-Spooler , der IXPLogon::P oll aufruft.
Der MAPI-Spooler ruft IXPLogon::StartMessage auf, um den Prozess zu initiieren.
Der Transportanbieter platziert einen Verweiswert an dem Speicherort, auf den in StartMessage verwiesen wird. Diese Verweiswerte ermöglichen es dem Transportanbieter und dem MAPI-Spooler, nachzuverfolgen, welche Nachricht verarbeitet wird, wenn mehrere Nachrichten zu übermitteln sind.
Der Transportanbieter speichert die Nachrichtendaten in der übergebenen IMessage: IMAPIProp-instance.
Der Transportanbieter ruft die IMAPIProp::SaveChanges-Methode für die IMessage-instance auf und gibt von StartMessage zurück.
Der MAPI-Spooler ruft IXPLogon::TransportNotify auf, wenn die Nachrichtenübermittlung beendet werden muss.
Hinweis
Wenn ein Transportanbieter eine große Anzahl von Nachrichten übermitteln muss und der Transportanbieter IMAPISupport::SpoolerNotify anstelle von IXPLogon::P oll verwendet, sollte darauf geachtet werden, SpoolerNotify nicht zu häufig aufzurufen, um anderen Transportanbietern keine CPU-Zeit zu entziehen. Der MAPI-Spooler verfügt über Logik, um dies zu verhindern, aber im Allgemeinen sollte das Intervall zwischen SpoolerNotify-Aufrufen länger sein als die Zeit, die Ihr Transportanbieter benötigt, um eine Nachricht zu verarbeiten. > Außerdem kann der MAPI-Spooler eine eingehende Nachricht nicht sofort verarbeiten. Der MAPI-Spooler kann den Transportanbieter auffordern, andere Aufgaben auszuführen, bevor er die eingehende Nachricht empfängt.