Huhu,
ich hab mal wieder ein Problem. Was ich möchte ist das ich alle ca. 3 Minuten einen Ping auf meine Server mache und wenn diese/r nicht verfügbar ist eine Mail rausgeschickt wird.
Im Prinzip funktioniert der Mail versand ohne Probleme (Andere Scripte laufen sehr gut z.B. Backupbenachrichtigungen etc.)
C
#include <MsgBoxConstants.au3>
;##################################
; Global Variablen
;##################################
Global $oMyRet[2]
Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
Global $pc = @ComputerName ; Auslesen des PC Namen
Global $Domain = @LogonDNSDomain ; Auselesen der Domain
Global $IPDC = "192.168.2.1" ; IP Adresse vom Domain Controller
Global $IPWSM = "192.168.3.1 " ; IP Adresse vom WSM Server
Global $NameDC = "DC" ; IP Adresse vom Domain Controller
Global $NameWSM = "WSM"
#include <_INetSmtpMailCom.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
;##################################
; Variablen
;##################################
$SmtpServer = "mail.gmx.net" ; SMPT Server vom Provider (Ist Erforderlich)
$FromName = "Überwachung Ping Server" & $Domain ; Von wem kommt die Mail
$FromAddress = "mail@absender.de" ; Email Adresse von (Ist Erforderlich)
$ToAddress = "mail@empfänger.de" ; Email Adresse an (Ist Erforderlich)
;$Subject = "Server nicht Verfügbar in der " & " " & $Domain ; Betreff für die Email (Kann Variabel vergeben werden)
$Body = "Server nicht erreichbar in der: " & $Domain ; WIRD HIER IN DER SCHLEIFE VERGEBEN Text inhalt (kann auch leer bleiben)
$Importance = "Hight" ; ; Priorität der Email: "High", "Normal", "Low"
$Username = "Benutzer" ; Loginname der Email Adresse (Ist Erforderlich)
$Password = "Passwort" ; Passwort der Email Adresse (Ist Erforderlich)
$IPPort = 465 ; Genutzter Port(Ist Erforderlich)
$ssl = 1 ; SSL an (1) oder aus (0)(Ist Erforderlich)
While True
Sleep(180000)
; Warte 3 min bis zum erneuten Ausführen
; 1. Abfrage Domain Controler
Local $PingDc = Ping($IPDC, 250) ; Ping auf Server max Antwortzeit toleranz 250 ms
If $PingDC Then ; Wenn ein Ping erfolgreich ist tue nichts
; wenn PING innerhalb von 250 ms gehe zur 2. Abfrage
; MsgBox($MB_SYSTEMMODAL, "", "Antwortzeit von " & $IPDC & ": "& $PingDC & " ms" & " Alles OK ")
Else ; Wenn ein Ping nicht erfolgreich ist sende mail
; wenn Ping nicht innerhalb von 250 ms dann verschicke Email
$Subject = "Server nicht Verfügbar in der: " & $Domain & " " & $NameDc ; Betreff für die Email, muss hier gesetzt werden da der Servername gesetzt werden muss
$rc = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $Importance, $Username, $Password, $IPPort, $ssl)
;MsgBox($MB_SYSTEMMODAL, "", "Ein Fehler ist aufgetretten bei " & $IPDC)
EndIf
; 2. Abfrage WSM Server
Local $PingWSM = Ping($IPWSM, 250) ; Ping auf Server max Antwortzeit toleranz 250 ms
If $PingWSM Then
; Wenn ein Ping erfolgreich ist tue nichts
; wenn PING innerhalb von 250 ms gehe zum Anfang der Schleife
;MsgBox($MB_SYSTEMMODAL, "", "Antwortzeit von " & $IPWSM & ": "& $PingWSM & " ms" & " Alles OK ")
Else ; Wenn ein Ping nicht erfolgreich ist sende mail
; wenn Ping nicht innerhalb von 250 ms dann verschicke Email
$Subject = "Server nicht Verfügbar in der: " & $Domain & " " & $NameWSM ; Betreff für die Email, muss hier gesetzt werden da der Servername gesetzt werden muss
$rc = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $Importance, $Username, $Password, $IPPort, $ssl)
;MsgBox($MB_SYSTEMMODAL, "", "Ein Fehler ist aufgetretten bei " & $IPWSM)
EndIf
WEnd
Alles anzeigen
IP Adressen und Benutzer daten sind im Orginal Script richtig.
Jetzt steh ich da und finde keine Lösung. Mit denn MSGBoxen klappt es aber der Versand der Mail nicht. Habt ihr eine Idee? Von mir aus auch was ganz anderes. Danke schon mal im Voraus.
LG
Pre