sbrinkkoetter
Goto Top

Per VBA Emails im Posteingang auslesen

Hallo,

verzweifel gerade an einer Kleinigkeit...

Ich übergebe der Variablen vom Typ MailItem den entsprechenden Ordner und kann auch Stück für Stück die Betreffzeilen der jeweiligen Emails bequem auslesen. Das Problem ist nur, wenn die Schleife in dem Ordner auf ein Objekte des Typs MeetingItem trifft, erscheint die Meldung : "Es ist nicht möglich ein MeetingItem einem MailItem zuzuweisen"... Das klingt auch logisch, aber wie kann ich es im Vorwege heraus filtern oder erkennen, dass es sich um ein MeetingItem handelt. Es handelt sich um die Kalendereinträge, die man per Email im Posteingang hat, bis man sie zu- oder absagt...

Über Hilfestellung würde ich mich sehr freuen !

Liebe Grüße
SB

Content-Key: 191259

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

Ausgedruckt am: 28.03.2024 um 09:03 Uhr

Mitglied: Pjordorf
Pjordorf 14.09.2012 um 13:02:35 Uhr
Goto Top
Hallo,

Zitat von @sbrinkkoetter:
aber wie kann ich es im Vorwege heraus filtern oder erkennen
Na z.B. durch den Klassiker "If" oder "Wend"
If xxx.mailitem Then
   deine Arbeit tun
End If
oder
If NOT xxx.MeetingItem Then
   deine Arbeit tun
End If
oder
While xx.MailIten
   deine arbeit tun
Wend
Es gibt also genug Möglichkeiten zu prüfen ob es sich um ein MailItem oder nicht handelt um daraus abzuleiten ob etwas getan werden muss oder nicht. Mehr werden wir dir ohne genaue Kenntnisse der fehlerhaften Stelle in deinem Quellcode schwer anbieten können.

Gruß,
Peter
Mitglied: sbrinkkoetter
sbrinkkoetter 14.09.2012 um 16:10:02 Uhr
Goto Top
Vielen Dank ! Ich glaube, ich muss die Anfrage in einem Navision Forum noch einmal stellen. Es werden nicht alle methoden und Eigenschaften über den Automation-Server in Navision angeboten. Deswegen ist es da wesentlich umständlicher... Aber im Prinzip war die Antwort ja richtig ! Danke nochmal !
Mitglied: Pjordorf
Pjordorf 14.09.2012 um 16:51:00 Uhr
Goto Top
hallo,

Zitat von @sbrinkkoetter:
Es werden nicht alle methoden und Eigenschaften über den Automation-Server in Navision angeboten.
Hat auch damit nichts zu tun. Du brauchst nur vor dem Verarbeiten/zuweisen deines MailItems prüfen ob es auch ein Mailiten ist. Dort wo deine Schleife gerade ist. Poste doch mal was du an Code (in code tags) hast, dann kann dir auch geholfen werden.

Gruß,
Peter
Mitglied: sbrinkkoetter
sbrinkkoetter 14.09.2012 um 17:14:07 Uhr
Goto Top
Hallo,

vielen dank für die intensive Hilfe !

Es läuft eigentlich gut, bis die Zeile "ol:=olItems.GetNext();" darüber stolpert, dass kein Objekt des Typs MailItem, sondern ein MeetingItem übergeben wird. Nicht über den Syntax wundern, es ist Navision eigener Code, angelehnt an Pascal und C. Der Zugriff erfolgt aber direkt über den Automation-Server von Microsoft Outlook...

"New Booking" & Co. sind die Suchbegriffe der Betreffzeile, um die gewünschten Emails zu finden. Das klappt auch soweit...


IF NOT CREATE(olApplication) THEN
ERROR('Outlook nicht gefunden!');

olNamespace := olApplication.GetNamespace('MAPI');
olFolder := olNamespace.GetDefaultFolder(6);
olItems:=olFolder.Items;

FOR Idx:=1 TO olItems.Count-1 DO
BEGIN
ol:=olItems.GetNext();

IF STRPOS(UPPERCASE(ol.Subject),'NEW BOOKING')>0 THEN
BEGIN
MESSAGE('%1',COPYSTR(ol.Subject,1,30));
END;

IF STRPOS(UPPERCASE(ol.Subject),'MODIFICATION')>0 THEN
BEGIN
MESSAGE('%1',COPYSTR(ol.Subject,1,30));
END;

IF STRPOS(UPPERCASE(ol.Subject),'CANCELLATION')>0 THEN
BEGIN
MESSAGE('%1',COPYSTR(ol.Subject,1,30));
END;
END;