VSTO: E-Mail mit newmailex verarbeiten, bevor Outlook-Regeln Mail verschieben

8

Ich erstelle ein Addon für Outlook 2007, das eine E-Mail-Nachricht beim Empfang liest und dann neu schreibt. Das Addon funktioniert hervorragend und schreibt die E-Mails für Elemente neu, die keine Outlook-Regel haben, die sie in einen anderen Ordner verschiebt. Wenn es eine Regel gibt, ist es immer noch in etwa 50% der Zeit in Ordnung. In den anderen 50% der Zeit verschiebt die Regel die Post, bevor mein Addon beendet wird. Ich erhalte den folgenden Fehler:

  

"Die Operation kann nicht ausgeführt werden, weil das Objekt gelöscht wurde."

Ich verwende das NewMailEx-Ereignis, um meine Umschreibungsfunktion aufzurufen:

%Vor%

In Outlook 2007 gibt NewMailEx eine Eingabe-ID für die E-Mail. Diese entryID wird zunächst verwendet, um herauszufinden, welches E-Mail-Objekt verwendet werden soll:

%Vor%

Ich dachte, dass ich diese entryID (die der obige Code funktioniert), und durchlaufen alle meine Ordner (sowohl auf Austausch als auch auf meinem Computer) auf der Suche nach der gleichen Mail-ID. Wenn ich schließlich zu der E-Mail-Adresse iteriere, unterscheidet sich die EntryID der verschobenen Mail sehr von der entryIDCollection.

Vielleicht mache ich das falsch. Weiß jemand, wie man die Verbreitung des Ereignisses stoppt, bis ich fertig bin oder wie man die verschobene E-Mail aufspürt?

Hier ist mein Code zum Durchlaufen der Ordner, falls jemand neugierig ist:

%Vor%     
mdiehl13 20.02.2010, 11:24
quelle

2 Antworten

5

Ungeprüfte Idee: Wenn Sie das NewMailEx-Ereignis zuverlässig erhalten, markieren Sie die E-Mail mit einer Benutzereigenschaft oder Kilometerzahl mit einer GUID, und verwenden Sie dann die Option Suchen.

Dies funktioniert möglicherweise nicht, da Sie möglicherweise nicht einsteigen können, bevor die Regel die Mail verschiebt.

Wie Sie herausgefunden haben, ändert sich die EntryId, wenn das Objekt verschoben wird.

Eine andere Möglichkeit, MAPI-Requisiten zu sehen, um den PR_SEARCH_KEY zu erhalten, der sich ändert, wenn E-Mails verschoben werden.

    
76mel 20.02.2010, 13:46
quelle
5

76mel's Antwort hat super funktioniert! Ich poste meinen resultierenden Code nur für den Fall, dass andere etwas Ähnliches machen wollen (ich bin neu und bin mir nicht sicher über die Regeln für die Veröffentlichung von viel Code, also tut mir leid, wenn es gegen die Regeln verstößt):

%Vor%

Übrigens, etwas, das ich wahrscheinlich ändern werde, ich werde die Abfrage bestimmter Ordner überspringen, um es ein wenig zu beschleunigen (Journal, gelöschte Objekte, Junk-e-Mail, Entwürfe, RSS-Feeds, Microsoft zu Hause, Aufgaben, Notizen, Kontakte, Kalender, Gesendete Objekte, Postausgang).

    
mdiehl13 21.02.2010 02:24
quelle

Tags und Links