Partager via


Envoi d’un message

S’applique à : Outlook 2013 | Outlook 2016

Lorsque vous êtes prêt à envoyer un message, appelez sa méthode IMessage ::SubmitMessage . SubmitMessage place le message dans la file d’attente sortante et définit l’indicateur MSGFLAG_SUBMIT dans la propriété PR_MESSAGE_FLAGS (PidTagMessageFlags) du message.

Le fournisseur de magasin de messages, s’il est étroitement couplé à un fournisseur de transport, transmet le message directement au transport qui le remet au système de messagerie. S’il n’est pas étroitement couplé, le fournisseur de magasin de messages informe le spouleur MAPI que la file d’attente sortante a changé et que le spouleur MAPI transfère le message à un fournisseur de transport approprié.

Si vous autorisez les utilisateurs à annuler une opération d’envoi, appelez IMsgStore ::AbortSubmit pour implémenter cette fonctionnalité. AbortSubmit supprime le message de la file d’attente sortante. Les utilisateurs peuvent être autorisés à arrêter un envoi jusqu’à ce que le message soit transmis au système de messagerie sous-jacent.

Si SubmitMessage retourne MAPI_E_CORRUPT_DATA, supposons que les données envoyées sont maintenant perdues. Avant de tenter d’envoyer une deuxième fois, réécrivez le message en appelant IMAPIProp ::SetProps et IMAPIProp ::SaveChanges. Afficher une erreur à l’utilisateur si ces appels IMAPIProp échouent ou si SubmitMessage échoue une deuxième fois.

Après un appel réussi à SubmitMessage, libérez toute la mémoire allouée à la liste des destinataires et relâchez le message et ses pièces jointes. Une fois qu’un message a été envoyé, MAPI n’autorise aucune autre opération sur les pointeurs pour ces objets. La seule exception consiste à appeler IUnknown ::Release. Aucun autre appel n’est autorisé, car de nombreux fournisseurs de magasins de messages invalident les identificateurs d’entrée pour les messages qui ont été envoyés.