Ich verwende ApplicationEvents_11_ItemSendEventHandler
(siehe http://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook.applicationevents_11_itemsendeventhandler.aspx), um einige Verarbeitung zu tun, wenn ein Element aus Outlook gesendet wird.Ereignis auf "Artikel gesendet" in Outlook
jedoch, wie dieses Event Feuer auf „Senden“, sondern als „gesendet“, ich bin nicht in der Lage, bestimmte Informationen zu erhalten, wie Absender, schickte Zeit usw.
Gibt es ein Alternatives Ereignis, das ausgelöst nach hat der Artikel tatsächlich gesendet? Ich habe diesen Blogbeitrag gelesen. http://easyvsto.wordpress.com/2010/07/27/how-to-save-mail-content-when-a-mail-is-sent-from-outlook/, aber ich bin vorsichtig, abhängig von den im Ordner für gesendete Objekte angezeigten Elementen, wenn man bedenkt, dass ein Benutzer diese Funktion deaktivieren kann.
Edit: sollte ich hinzufügen, dass ich tatsächlich versucht, die „sehen den Ordner Gesendete Objekte“ -Ansatz und haben bemerkt, dass die ItemAdd
Ereignis scheint nur für die erste E-Mail feuern ich senden, dann nicht wieder, bis ich Outlook neu starten . Mein Code ist wie folgt;
var sentMail = Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail);
sentMail.Items.ItemAdd += new Outlook.ItemsEvents_ItemAddEventHandler(Items_ItemAdd);
Und meine Methode ...
void Items_ItemAdd(object item)
{
MessageBox.Show(((Outlook.MailItem)item).Subject);
}
Sie müssen halten die Gegenstände lebendig Objekt (in einer Klassenvariablen) für die Ereignisse zu schießen. In Ihrem Fall erstellt der Compiler eine temporäre Variable, um das Objekt sentMail.Items zu behalten. Wenn diese Variable als Garbage Collection erfasst wird, werden die Ereignisse nicht mehr ausgelöst. –