2011-11-13 2 views
0

J'ai un petit problème avec VSTO. J'ai besoin d'obtenir le courrier envoyé et persister le contenu de celui-ci. Y a-t-il un genre sur l'événement MailSent?Événement envoyé par courrier VSTO

La seule solution que j'ai trouvée pour l'instant est de raccorder l'événement ItemAdd sur le dossier SentItems. Est-ce vraiment le seul moyen ou l'un d'entre vous connaît une solution plus élégante?

Merci

Répondre

1

Vous pouvez utiliser l'événement ItemSend pour cela, comme ceci:

private void ThisAddIn_Startup(object sender, System.EventArgs e) 
{ 
    this.Application.ItemSend += new Microsoft.Office.Interop.Outlook.ApplicationEvents_11_ItemSendEventHandler(Application_ItemSend); 
} 


private void Application_ItemSend(object Item, ref bool Cancel) 
{ 
    // Code to run when item is being sent 
} 
+0

Oui mais l'article n'a pas encore été envoyé. Je demandais à propos de l'événement ItemSent. Si vous vérifiez l'élément que vous obtenez en tant que paramètre, il n'est pas encore envoyé et toutes les informations sur l'heure d'envoi et similaires ne sont pas encore prêts. Et aussi n'est pas triste que l'envoi sera couronné de succès. – MaiOM

+0

@MaiOM Je ne connais aucun événement Sent. Je vois dans les articles de blog que vous n'êtes pas le seul à utiliser SentItems.ItemAdd pour attraper cela, mais en fait, je pense que ItemSend est une meilleure option. L'événement ItemSend se produit lorsque l'e-mail est envoyé, de sorte que "send time" est "now". Le courrier sera ajouté à "Éléments envoyés" même si le courrier n'est jamais remis (essayez d'envoyer un mail à un destinataire inexistant). En outre, l'utilisateur peut désactiver la fonctionnalité pour enregistrer les éléments envoyés dans ce dossier, en allant à Outils-> Options-> Options E-Mail – GTG

+0

Ainsi, lorsque l'élément (par exemple, email/demande de réunion, disons) après avoir envoyé Envoyer dans le UI, a fait la queue dans la boîte d'envoi ...? Quoi alors? – deostroll

Questions connexes