Wann ist ein MailItem nicht ein MailItem?
Ich geschrieben habe, eine message-handler-Funktion in Outlook ist die VBA (wir benutzen Outlook 2003 und Exchange Server) zu helfen, mich zu Sortieren eingehende E-Mail.
Ist es, für mich zu arbeiten, außer manchmal die Regel fehl, und Outlook deaktiviert.
Dann Wende ich die Regel wieder auf und manuell führen Sie es auf meinem Posteingang, um aufzuholen. Der Regel spontan ausfällt und deaktiviert mehrmals am Tag.
Ich würde gerne dieses Problem beheben, sobald und für alle.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser code zeigte mir die verschiedenen TypeNames, die waren in meinem Posteingang:
HTH
Benutze ich folgende VBA-code-snippet in andere Office-Anwendungen, wo die Outlook-Bibliothek wird direkt auf diese verwiesen wird.
etc.
TypeOf
besser als " hard-coding "MailItem" als string.geschrieben haben, eine message-handler-Funktion in Outlook ist die VBA (wir benutzen Outlook 2003 und Exchange Server) zu helfen, mich zu Sortieren eingehende E-Mail. Es ist für mich arbeiten, außer manchmal die Regel fehl, und Outlook deaktiviert. Dann Wende ich die Regel wieder auf und manuell führen Sie es auf meinem Posteingang, um aufzuholen. Der Regel spontan ausfällt und deaktiviert mehrmals am Tag. Ich würde gerne dieses Problem beheben, sobald und für alle.
Hier ist der code, der beraubt die Funktionalität, sondern gibt Ihnen eine Vorstellung davon, wie es aussieht:
Einen Fehler bekomme ich "Typen unverträglich" aufrufen MyMessageHandler, in denen die VB beschwert sich, dass Item ist nicht ein MailItem. Okay, aber TypeName(Item) gibt "MailItem", also wie kommen Artikel ist kein MailItem?
Anderen, den ich bekommen ist, wo eine E-Mail mit leerem Betreff kommt. Die Linie
gibt mir eine Fehlermeldung. Ich weiß Element.Thema sollte leer sein, aber warum ist das ein Fehler?
Dank.
TypeName(Item) = "MailItem"
, dann ruft eine Prozedur auf ... die nicht nur akzeptiert, nur MailItems, aber erneut prüft, ob das Element ein MailItem?Meine Erinnerung ist etwas trübe, aber ich glaube, dass ein MailItem ist nicht ein MailItem-wenn es so etwas wie eine Lesebestätigung. (Leider ist der VBA-code, der demonstriert dies geschrieben wurde, an einen anderen job und nicht um jetzt.)
Hatte ich auch code geschrieben, um eingehende Nachrichten, wahrscheinlich aus dem gleichen Grund haben (zu viele Exchange-Regeln oder Regeln zu Komplex für den Regel-Assistenten), und scheinen zu erinnern, mit den gleichen Problemen, die Sie haben, dass einige Elemente schien von einer anderen Art auch wenn ich Fang Sie mit so etwas wie, was Sie schrieb.
Ich werde sehen, ob ich kann produzieren ein spezifisches Beispiel, wenn es wird Ihnen helfen.
Es gibt viele Arten von Gegenständen, die gesehen werden in den Standard-Posteingang.
In den genannten Verfahren weisen Sie die eingehenden Element zu einem
Object
- Typ-Variablen. Dann nutzen SieTypeOf
oderTypeName
zu ermitteln, ob es einMailItem
. Nur dann sollten Sie Ihren code ausführen von Aktionen für E-Mails.d.h.
warum nicht eine einfache Fehlerbehandlung für den code? Ernst. Sie schreiben, könnte ein Fehler für jedes Lesen einer Eigenschaft oder Objekt, das scheint zu scheitern. Dann haben Sie es Fortsetzen, egal was. Keine Notwendigkeit für komplexe Fehlerbehandlung. Denke, ein test, der zeigt eine leere Thema. Da Sie nicht wissen, welcher Wert wird zurückgegeben, wenn überhaupt, und es scheint, um Fehler auf eine leere oder leere Thema, Sie müssen sich das vorstellen wie ein einfacher test mit einem möglichen Fehler. Führen Sie den test wie eine if-Anweisung (in dem Sie eine Fehlermeldung erhalten, trotzdem), und das Programm fortsetzen auf Fehler.