Hallo,
ich habe in Outlook 2016 einen einfachen Attachment-/ Link-filter programmiert, der meistens hervorragend funktioniert. Das Programm läuft auf einer immer geöffneten Outlookinstanz, in der 6 emailkonten von anderen Netzwerkbenutzern eingebunden sind. Kommt eine neue email herein, dann wird diese mit Application_NewMailEx abgefangen und die dabei vom System übergebene EntryID wird an ein MailItem Objekt übergeben, aus dem ich die Anhänge heraus lese und prüfe.
Zu 80% funktioniert das super, jedoch hin und wieder bleibt das Programm hängen, mit der Fehlermeldung: "Typen unverträglich" Lzfehler 13. Im Code unten habe ich die Stelle markiert.
Es ist nicht das Problem von strIDs(), das funktioniert und bringt einen String heraus, der exakt der EntryIDCollection entspricht.
Das Problem ist, dass .GetItemFrom die von Outlook übergebene ID nicht versteht.
Wenn ich den EntryID-String 'von Hand eintrage':
dann kommt der gleiche Fehler, also Typen unverträglich.
Wenn ich den String 'von Hand eintrage' und die letzte Null entferne:
dann kommt der Fehler "Das Element konnte nicht geöffnet werden".
Wenn ich irgendeinen String 'von Hand eintrage' :
dann kommt der Fehler "Das Element konnte nicht geöffnet werden".
"Typen unverträglich" würde eigentlich bedeuten, .GetItemFromID erwartet einen String und bekommt etwas anderes. Da können wir aber ausschließen, denn ich habe den String ja von Hand eingegeben, die Konvertierung mit Gewalt und cstr bringt auch nichts.
Also muss das Problem sein, dass die offizielle EntryID von Outlook nicht stimmt.
Das verkürzte Programm:
Kann mir jemand helfen?
Gruß Felix
Basicprogrammierung seit 1983
Code-Tags eingefügt. ~Thunderbolt
ich habe in Outlook 2016 einen einfachen Attachment-/ Link-filter programmiert, der meistens hervorragend funktioniert. Das Programm läuft auf einer immer geöffneten Outlookinstanz, in der 6 emailkonten von anderen Netzwerkbenutzern eingebunden sind. Kommt eine neue email herein, dann wird diese mit Application_NewMailEx abgefangen und die dabei vom System übergebene EntryID wird an ein MailItem Objekt übergeben, aus dem ich die Anhänge heraus lese und prüfe.
Zu 80% funktioniert das super, jedoch hin und wieder bleibt das Programm hängen, mit der Fehlermeldung: "Typen unverträglich" Lzfehler 13. Im Code unten habe ich die Stelle markiert.
Es ist nicht das Problem von strIDs(), das funktioniert und bringt einen String heraus, der exakt der EntryIDCollection entspricht.
Das Problem ist, dass .GetItemFrom die von Outlook übergebene ID nicht versteht.
Wenn ich den EntryID-String 'von Hand eintrage':
set objEmail = objNS.GetItemFromID("00000000223216C4A06102448F55B3EFACC3EF9C0700795D8723A614C44A9DB33BFC7ED30CE400000DD88C4B0000795D8723A614C44A9DB33BFC7ED30CE4000017DA82BE0000")
dann kommt der gleiche Fehler, also Typen unverträglich.
Wenn ich den String 'von Hand eintrage' und die letzte Null entferne:
set objEmail = objNS.GetItemFromID("00000000223216C4A06102448F55B3EFACC3EF9C0700795D8723A614C44A9DB33BFC7ED30CE400000DD88C4B0000795D8723A614C44A9DB33BFC7ED30CE4000017DA82BE000")
dann kommt der Fehler "Das Element konnte nicht geöffnet werden".
Wenn ich irgendeinen String 'von Hand eintrage' :
set objEmail = objNS.GetItemFromID("123456789")
dann kommt der Fehler "Das Element konnte nicht geöffnet werden".
"Typen unverträglich" würde eigentlich bedeuten, .GetItemFromID erwartet einen String und bekommt etwas anderes. Da können wir aber ausschließen, denn ich habe den String ja von Hand eingegeben, die Konvertierung mit Gewalt und cstr bringt auch nichts.
Also muss das Problem sein, dass die offizielle EntryID von Outlook nicht stimmt.
Das verkürzte Programm:
Visual Basic-Quellcode
- Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
- Dim objNS As Outlook.NameSpace, objEmail As Outlook.MailItem, strIDs() As String, intX As Integer, absender As String
- strIDs = Split(EntryIDCollection, ",")
- For intX = 0 To UBound(strIDs)
- Set objNS = Application.GetNamespace("MAPI")
- Set objEmail = objNS.GetItemFromID(strIDs(intX)) '<<<<<<< hier hängt das Programm manchmal mit "Typfehler"
- msgbox objEmail.SenderEmailAddress
- Next
- Set objEmail = Nothing
- End Sub
Kann mir jemand helfen?
Gruß Felix
Basicprogrammierung seit 1983
Code-Tags eingefügt. ~Thunderbolt
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()