J'ai un addin Outlook 2013 avec un Eventhandler ItemSend que je n'arrive pas à utiliser correctement.Pourquoi MailItems est-il créé dans le dossier Éléments envoyés affiché en mode composition dans Outlook 2013
Ce qu'il fait est:
boucles tous les destinataires (à, cc, bcc) et crée une copie distincte pour chaque seulement que le courrier électronique comme destinataire et les envoie. Puis les supprime du dossier de courrier envoyé. Cela fonctionne bien.
Crée une copie supplémentaire, contenant les informations d'origine, cc et bcc. Utilise la méthode move pour le déplacer vers le dossier Éléments envoyés, car Enregistrer le mettrait dans la boîte d'envoi. Il ne doit pas être réellement envoyé, il devrait être juste votre copie personnelle comme si elle aurait été envoyée normalement.
Définit cancel = true et ferme la fenêtre de l'inspecteur avec rejeter, de sorte que l'original n'est jamais envoyé non plus. Cela fonctionne aussi.
Le problème est la copie enregistrée. Quand je l'ouvre, c'est en mode composition. Fondamentalement, c'est la même chose que ce serait un projet. Je veux le voir tel qu'il aurait été envoyé, en mode lecture. J'ai lu que la propriété Sent-détermine le mode dans lequel l'afficher, mais cette propriété est en lecture seule, tout comme SentOn qui est null et ce serait aussi un problème même si le mode est correct. Y at-il un moyen de contourner cela?
J'ai même essayé de prendre l'un des autres mails qui ont été réellement envoyés, du dossier Éléments envoyés, éditer le contenu et l'enregistrer. Mais cela entraîne le même comportement. Aussi que MailItem a Sent = False et SentOn = null. Cela peut-il être dû au fait qu'il n'a pas encore été envoyé, même si Send-a été appelé, car nous sommes toujours en train d'exécuter EventHandler et je ne pense pas qu'Outlook l'envoie réellement dans un autre thread?
De toute façon, cela ne semble pas être une solution de contournement.
Des idées pour implémenter ce type de fonctionnalité? Sur le niveau bas (MAPI étendu), le bit MSGFLAG_UNSENT peut être supprimé de la propriété PR_MESSAGE_FLAGS
uniquement avant la première sauvegarde de l'élément (limitation MAPI).
Merci, j'ai utilisé ce truc PostItem et cela a fonctionné. – SamiR
Encore une question à ce sujet. Je fais le postitem et enregistrer etc. pour faire un mailitem. Ensuite, je mets à jour tous les champs, sujet, corps, à, cc etc. Mais comment puis-je reconstruire la collection Recipients. Il n'a aucune méthode .Add (destinataire destinataire), seulement .Add (nom de la chaîne) Je veux ajouter le même type d'objet – SamiR
. Je peux ajouter avec le nom, ou les ajouter aux champs "À" et "CC", mais cela fait différents types d'objets de destinataire et cause des problèmes plus tard avec des adresses d'échange, qui ne deviennent pas claires mais , ou = Etc .... "type d'adresses. – SamiR