ahstax
Goto Top

Outlook-Ordner auf neue E-Mail überwachen

Hallo,

mit dem folgenden Code kann ich einen OL-Ordner auf neue E-Mails/Objekte überwachen.

Public Sub olInboxItems_ItemAdd(ByVal Item As Object) Handles olInboxItems.ItemAdd

 intMailItemsReceivedLiveIndex = +1

 dicMailItemsReceivedLive.Add(intMailItemsReceivedLiveIndex, Item)

End Sub

Das funktioniert, soweit ich das beurteilen kann, recht zuverlässig, so lange nur eine E-Mail/Objekt zu einem Zeitpunkt neu in den OL-Ordner kommt. Gelangen gleichzeitig mehrere E-Mails/Objekte in den OL-Ordner, erhalte ich die Meldung, dass bereits ein Item in dem Dictionary an Stelle intMailItemsReceivedLiveIndex sei.
Ich habe versucht, eine Zufällige Verzögerung des Codes zu nutzen:
 Dim rnd As New Random
 System.Threading.Thread.Sleep(rnd.Next(100, 1000))
Es scheint aber so zu sein, dass ItemAdd nicht für jedes Item ausgelöst wird, sondern für alle Items gemeinsam.

Gibt es eine Möglichkeit, alle Items, die gleichzeitig in den OL-Ordner gelangen abzufragen, ohne aber z.B. die EntryID zu verwenden?

Neugierige Grüße,
Andreas

Content-Key: 223519

Url: https://administrator.de/contentid/223519

Ausgedruckt am: 28.03.2024 um 16:03 Uhr

Mitglied: colinardo
colinardo 03.12.2013 aktualisiert um 11:45:45 Uhr
Goto Top
Hallo Andreas,
also bei mir wird für jedes Element das hinzugefügt wird (auch wenn es mehrere Gleichzeitig sind) das Event ausgelöst!
Dein Problem ist die Zuweisung des Counters,so wie du das machst kann es nicht funktionieren..., das gehört so geschrieben:
intMailItemsReceivedLiveIndex += 1 
und ich hoffe du hast diese als öffentliche Variable außerhalb des Events deklariert ...

Grüße Uwe
Mitglied: ahstax
ahstax 03.12.2013 um 11:51:57 Uhr
Goto Top
Hallo Uwe,

Danke(!!!) für den Hinweis, das wars...!

(ja, die Variable ist außerhalb des Events als öffentliche Variable deklariert)

Grüße,
Andreas