hellas
Goto Top

Mit VBA Posteingang überprüfen bei Outlook2003

Hallo,

Ich bekomme jeden Tag eine automatisch generierte Mail von einem externen Server.
Wenn diese Mail kommt, funktioniert das externe System.

Der Haken ist, dass eine Mail die nicht kommt auch nicht sofort auffällt.

Da ich auf das externe System keinen Zugriff habe, war mein Ansatz folgender

- den Posteingang täglich via VBA überprüfen nach eine Mail mit dem Absender Alive@abc.de und aktuellem Datum
- Wenn vorhanden, dann OK
- Wenn nicht vorhanden sende Warnung in Form einer Email.

Hat da jemand ein paar Codeschnipsel woraus ich mir so etwas bauen könnte ?

Danke

Content-ID: 231729

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

Ausgedruckt am: 22.11.2024 um 00:11 Uhr

Pjordorf
Pjordorf 05.03.2014 um 16:22:04 Uhr
Goto Top
Hallo,

Zitat von @hellas:
Der Haken ist, dass eine Mail die nicht kommt auch nicht sofort auffällt.
Und du meinst das deine neue Mail auffällt? face-smile

Da ich auf das externe System keinen Zugriff habe, war mein Ansatz folgender
Nach Eingang im Posteingang diese per Regel:
1. Eine Nachricht auf dein Desktop aufpoppen lassen
2. Eine MP3 wiedergeben lassen z.B. "Er ist wider da"
3. Die nachricht in eigens geschaffenen Ordner Verschieben wo du sofort siehst "x Anzahl neue nachrichten" und dir Klar ist diese tammen nur von diesen Server
4. Die Nachricht per E-Mail in Kopie weitereleiten an Konto XYZ
5. Die Nachricht auf einen Nadeldrucker ausdrucken (Akustische Signalisierung das eben ein neue...)

Und wenn all das eben nicht Passiert, dann gab es keine Mail....


Gruß,
Peter
colinardo
colinardo 05.03.2014 aktualisiert um 18:33:16 Uhr
Goto Top
Hallo hellas,
schließe mich Pjordorf an, ich mache sehr viel mit Outlook und VBA, aber das was du vorhast kann man zwar machen aber ich würde es eher anders angehen. Ein anderes System den Server überwachen lassen, und dieses verschickt nur dann eine Mail wenn das System nicht mehr läuft. So sollte es eigentlich sein und nicht anders herum ...ist effektiver...

Grüße Uwe
hellas
hellas 06.03.2014 um 08:04:15 Uhr
Goto Top
Ja ich gebe euch ja recht, das es effektiver wäre den Server mit einem anderen System überprüfen zu lassen und eine Meldung zu bekommen wenn er nicht mehr läuft aber ich habe halt keinen Zugriff auf diesen Server und der Provider schickt mir nun mal einmal am Tag eine Mail das der noch lebt.

Jeden Morgen die Nationalhymne erklingen zu lassen wenn die Mail kommt ist natürlich eine Möglichkeit. Aber schöner fände ich es eine Mail zu bekommen, wenn es nicht funktioniert. Ist das ein großer Aufwand ? Ich kenne mich ein wenig mit VBA für Excel aus aber leider nicht mit VBA für Outlook.
colinardo
Lösung colinardo 06.03.2014, aktualisiert am 18.06.2015 um 14:21:17 Uhr
Goto Top
Dann mach es halt mit diesem AutoIT-Script (kompiliere es zu einer *.exe), das lässt sich besser zeitlich Steuern und mit dem Taskplaner ausführen.
Variablen in Zeilen 4-6
#NoTrayIcon
#include <Date.au3>
; Variablen ----
$suchEMail = "Alive@abc.de"  
$mailTo = "benachrichtigung@domain.de"  
$mailBetreff =  "Achtung positive Server-Nachricht wurde nicht gefunden"  
;---------------
dim $found = False
$objOL = ObjCreate("Outlook.Application")  
$folderObjects = $objOL.GetNamespace("MAPI").GetDefaultFolder(6)  

For $obj In $folderObjects.Items
	if $obj.SenderEmailAddress = $suchEMail then
		$msgTime = StringMid($obj.ReceivedTime,7,2) & "." & StringMid($obj.ReceivedTime,5,2) & "." & StringMid($obj.ReceivedTime,1,4)  
		if _NowDate() = $msgTime then
			$found = True
		endif
	Endif
Next
if not $found then
	msgbox(0,"","Achtung positive Server-Nachricht wurde nicht gefunden, sende Benachrichtigungsmail!",2)  
	sendMail()
Else
	MsgBox(0,"","Nachricht wurde gefunden. Beende Script.",2)  
endif

func sendMail()
	$mail = $objOL.CreateItem(0)
	$mail.Subject = $mailBetreff
	$mail.To = $mailTo
	$mail.Send
EndFunc
Grüße Uwe
hellas
hellas 06.03.2014 um 15:05:55 Uhr
Goto Top
Super das hilft mir sehr face-smile

Er macht jetzt nur noch die Sicherheitsabfrage, ob er auf mein Mail Verzeichnis zugreifen darf.

Hab schon geschaut, da gibt es Programm um die Sicherheitsstufe von Outlook anzupassen.

Danke
colinardo
colinardo 06.03.2014 aktualisiert um 16:22:56 Uhr
Goto Top
Er macht jetzt nur noch die Sicherheitsabfrage, ob er auf mein Mail Verzeichnis zugreifen darf.
Das ist eines der vielen Mankos von Outlook 2003, eine Lösung ist entweder über MAPILab Advanced Security for Outlook oder Redemption, oder Upgrade denn ab 2007 hast du folgende Einstellungsmöglichkeit im Security Center von Outlook:

931f3806650ce3733a372971f9bd8f62

Grüße Uwe