Partager via


Modèle de réception de messages

S’applique à : Outlook 2013 | Outlook 2016

Le fournisseur de transport contrôle si le spouleur MAPI doit l’interroger pour le courrier entrant ou s’il effectue un rappel vers le spouleur MAPI à l’arrivée d’un nouveau courrier. Le fournisseur de transport définit l’indicateur SP_LOGON_POLL lorsqu’il retourne à partir de IXPProvider ::TransportLogon pour demander l’interrogation. Sinon, le fournisseur de transport utilise IMAPISupport ::SpoolerNotify lorsque le courrier entrant est disponible. Après avoir appris que le courrier entrant est disponible, le spouleur MAPI ouvre un nouveau message et demande au fournisseur de transport de stocker les propriétés du message reçu dans le message.

Ce processus fonctionne comme suit :

  1. Les messages disponibles sont indiqués par le fournisseur de transport appelant IMAPISupport ::SpoolerNotify ou par le spouleur MAPI appelant IXPLogon ::P oll.

  2. Le spouleur MAPI appelle IXPLogon ::StartMessage pour lancer le processus.

  3. Le fournisseur de transport place une valeur de référence dans l’emplacement référencé dans StartMessage. Ces valeurs de référence permettent au fournisseur de transport et au spouleur MAPI de suivre le message en cours de traitement lorsqu’il y a plusieurs messages à remettre.

  4. Le fournisseur de transport stocke les données de message dans le instance IMessage : IMAPIProp transmis.

  5. Le fournisseur de transport appelle la méthode IMAPIProp ::SaveChanges sur le instance IMessage et retourne à partir de StartMessage.

  6. Le spouleur MAPI appelle IXPLogon ::TransportNotify s’il doit arrêter la remise des messages.

Remarque

Si un fournisseur de transport doit remettre un grand nombre de messages et que le fournisseur de transport utilise IMAPISupport ::SpoolerNotify au lieu d’IXPLogon ::P oll, veillez à ne pas appeler SpoolerNotify trop fréquemment afin de ne pas priver les autres fournisseurs de transport du temps processeur. Le spouleur MAPI a une logique pour empêcher cela, mais en général, l’intervalle entre les appels SpoolerNotify doit être plus long que le temps nécessaire à votre fournisseur de transport pour traiter un message. > En outre, le spouleur MAPI peut ne pas traiter un message entrant immédiatement. Le spouleur MAPI peut demander au fournisseur de transport d’effectuer d’autres tâches avant de recevoir le message entrant.