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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 231729
Url: https://administrator.de/contentid/231729
Ausgedruckt am: 22.11.2024 um 00:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo,
Und du meinst das deine neue Mail auffällt?
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
Und du meinst das deine neue Mail auffällt?
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
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
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
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
Grüße Uwe
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
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:Grüße Uwe