2017-10-13 3 views
0

Mon earlier problem sur l'interception d'un message électronique juste après l'envoi a été résolu à l'aide du gestionnaire d'événements Items.ItemAdd du dossier Éléments envoyés. Cela fonctionne correctement lorsque je ne modifie pas la boîte aux lettres de l'expéditeur. Mais si je change en sélectionnant un autre compte dans la liste déroulante de l'expéditeur sur l'interface présentée par mailItem.Display(true);, puis les terres de messages envoyés dans le dossier « éléments envoyés » de cet autre compte, maisObtention du dossier "éléments envoyés" de l'expéditeur dans Office 365 Outlook (C#)

Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail); 

doesn Ne changez pas en conséquence, de cette façon je ne peux pas attraper le message. Comment puis-je obtenir le dossier "éléments envoyés" de l'expéditeur sélectionné (pas par défaut)? (une solution de contournement acceptable serait de changer la boîte aux lettres par défaut, mais je ne sais pas comment faire cela).

Répondre

1

La méthode GetDefaultFolder de la classe Store renvoie un objet Folder qui représente le dossier par défaut dans le magasin et qui est du type spécifié par l'argument FolderType. Cette méthode est similaire à celle de l'objet NameSpace. La différence est que cette méthode obtient le dossier par défaut sur le magasin de livraison associé au compte, tandis que NameSpace.GetDefaultFolder renvoie le dossier par défaut sur le magasin par défaut pour le profil en cours.

Vous pouvez gérer l'événement ItemSend de la classe Application où vous pouvez obtenir l'expéditeur. Ensuite, vous pouvez trouver le magasin associé et utiliser la méthode GetDefaultFolder pour obtenir le bon dossier Éléments envoyés. Sachez que la propriété SaveSentMessageFolder de la classe MailItem renvoie ou définit un objet Folder qui représente le dossier dans lequel une copie du message électronique sera enregistrée après son envoi (au lieu du dossier Éléments envoyés).