syraneus
Goto Top

Nachrichtenversenden ohne Verwendung von E-Mail

Hallo,

ich habe das Problem das ich eine Meldung/Nachricht an einen Webserver/Ip-Adresse versenden will. jedoch kann ich dabei E-Mail nicht nutzen, weil SMTP nicht konfiguriert ist. SMTP kann auch nicht konfiguriert werden. Der Ablauf stellt sich folgendermaßen dar. Ein Programm (SpeedFan) meldet das die Temperatur zu heiß ist. und Startet ein skript. Dieses skript soll dann eine Nachricht an den Webserver senden, und der webserver soll sich dann per Remote ansehen was los ist und das Problem beheben oder den computer runterfahren. Jedoch wie bekomm ich eine meldung an den Webserver, ohne das ich den E-Mail Server verwenden kann. Als skriptsprache hab ich entweder an eine einfache Batch-Datei gedacht oder an autoit.
vielen dank für die Antworten.

mfg DerChirurg

Content-ID: 91207

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

Ausgedruckt am: 15.11.2024 um 14:11 Uhr

manuel-r
manuel-r 03.07.2008 um 11:17:28 Uhr
Goto Top
der webserver soll sich dann per Remote ansehen was los ist und das Problem beheben oder den computer runterfahren
Das musst du mir jetzt aber mal erklären. Wie soll der Webserver das machen. Wenn überhaupt dann ja über irgendein Script, das er ausführt und dabei entsprechende Aktionen auslöst. Wenn das wirklich per Script erfolgt, dann stellt sich mir natürlich die Frage: Warum kann das auslösende Programm (SpeedFan) nicht gleich auf dem Server der das Problem hat das Prüf-/Fehlerbehebungsscript ausführen? Wozu der Umweg über einen Webserver?

Manuel
Syraneus
Syraneus 03.07.2008 um 11:21:25 Uhr
Goto Top
weil der computer nur in bestimmten fällen herunter gefahren werden soll. die meldung die verschickt wird, wird, wie gesagt, an einen webserver/Ip-adresse versendet. An diesem Webserver/Ip-Adresse sitzt ein Helpdesk mitarbeiter, der sich dann per remote verbinden kann. Speedfan kann den computer natürlich herunterfahren wenn eine kritische teperatur erreicht wird, das ist jedoch vom kunden nicht gewollt. es geht mir auch gar nicht so um den webserver, sondern um das wie ich die information da hin bringe.
manuel-r
manuel-r 03.07.2008 um 11:26:11 Uhr
Goto Top
Aha. Das ist doch schon ein nicht unerheblicher Unterschied. Nicht der Webserver an den die Meldung geht macht was per Script sondern ein Mitarbeiter der an diesem Server erreichbar ist macht manuell was.
Dann könntest du im einfachsten Fall mit net send was hinbekommen. Alternativ könntest du ja auch den Webserver eine eMail verschicken lassen. Dort ist in den meisten Fällen ja ein entsprechender Dienst gestartet. Dazu würde ich dann ein PHP-Script auf dem Webserver ablegen, dass die Mail mit entsprechendem Text verschickt.
Der fehleranfällige Server braucht dann einfach nur mit wget dieses Script über HTTP auszuführen und schon geht die Mail auf den Weg.

Manuel
Syraneus
Syraneus 03.07.2008 um 11:31:54 Uhr
Goto Top
Hi, ja an das hab ich auch schon gedacht, jedoch ist aus sicherhietsgründen net send bei uns im unternehmen deaktiviert. gibt es noch ne anderen möglichkeit eine nachricht an eine ip-adresse zu bringen?
manuel-r
manuel-r 03.07.2008 um 11:34:27 Uhr
Goto Top
Und was ist mit
Alternativ könntest du ja auch den Webserver eine eMail verschicken lassen. Dort ist in den meisten Fällen ja ein entsprechender Dienst gestartet.
Syraneus
Syraneus 03.07.2008 um 11:42:27 Uhr
Goto Top
das wäre eine möglichkeit, aber wie sage ich dem webserver das er eine e-mail versenden soll? der aufbau ist ja

computer - webserver - helpdesk mitarbeiter

oder dieser aufbau ist auch möglich

computer - helpdesk mitarbeiter

und es sollte auch die information von der temperatur und die ip-adresse des computers in der e-mail an den helpdesk mitarbeiter vorhanden sein. wie stellst du dir das gerade vor?
vielleicht durch nen ping an den webserver und wenn der den ping bekommt versendet der ne e-mail an den helpdesk zu schicken? aber wo hat er die informationen her?
manuel-r
manuel-r 03.07.2008 um 12:02:15 Uhr
Goto Top
Also zuerst schreibst du dir in PHP ein Script das eine Mail verschickt. Die Funktion mail() ist dabei dein Freund. Vorraussetzung ist natürlich, dass der Webserver PHP kann.
Dieses Script rufst du dann über wget auf. Dabei passiert das gleiche wie wenn du das Script mit einem Browser aufrufst.
Da in dem Script steht es soll über den Webserver eine Mail verschicken macht es das auch. Computer sind ja halt doof und machen genau das was man ihnen sagt.
Wenn du jetzt noch irgendwelche Fehlerangaben an das Script übermitteln willst, dann machst du das als GET indem du die Werte an die URL anhängst, im Script entsprechend auswertest und weiterverarbeitest.
Hier ein kleines Beispiel, wie ich das bei mir mache. Meine Server überwachen sich per Script selbst und melden genau auf diesem Weg alle Auffälligkeiten an den Webserver. Dort wird das alles in einer DB gespeichert und je Fehler auch eine Mail verschickt.
Zugegeben: Das ist vielleicht etwas tricky, aber dafür recht universell einsetzbar.
<?PHP

if (isset($conf_prob));
if (isset($conf_subj));
if (isset($conf_desc));

$entry_admin = "Auto-Eintrag";  
$entry_ipadr = $_SERVER['REMOTE_ADDR'];  
$entry_time = time();
$conf_date = date("d.m.Y");  
$conf_time = date("H:i");  

//To
$empfaenger = "mitarbeiter@domain.tld";  

//Name der Absenders
$entry_adminmail = "no.reply@domain.tld";  

//Reply-Adresse
$reply = $entry_adminmail;

//Betreffzeile
$subject = "FEHLER > $conf_subj";  

//Inhalt der Mail
$message = "<html>  
    <head>
    <title>Fehler:</title>
    </head>
    <body>
    <p><font face='Verdana,Tahoma,Arial,Helvetica,Sans-serif,sans-serif' size='-1'>  
    <br>Neue Problembehebung von $entry_admin am $conf_date um $conf_time.
    <br>&nbsp;
    <br><b>Problem:</b>
    <br>$conf_prob
    <br>&nbsp;
    <br><b>Betreff des Problems:</b>
    <br>$conf_subj
    <br>&nbsp;
    <br><b>Beschreibung des Problems:</b>
    <br>$conf_desc
    <br>&nbsp;
    <br><b>Absenderkennung:</b>
    <br>$entry_admin @ $entry_ipadr ($entry_time)
    </p>
    </body>
</html>
";  

//Header zusammenbauen
$headers .= "From:" . $entry_adminmail . "\n\r";  
$headers .= "Reply-To:" . $entry_adminmail . "\n\r";   
$headers .= "X-Mailer: PHP/" . phpversion() . "\n\r";   
$headers .= "X-Sender-IP: " . $REMOTE_ADDR . "\n\r";   
$headers .= "Content-type: text/html\n\r";  

//Mail verschicken
mail($empfaenger, $subject, $message, $headers);
?>
Ich hab jetzt mal alles raus gelassen, was für das Versenden der Mail nicht wichtig ist. Dieses Script legst du auf den Webserver und lässt es dort aufrufen.
Die URL lautet dann etwa
webserver/fehlermail.php?conf_prob=Übertemperatur am Server-1&conf_subj=ACHTUNG: Server meldet Fehler&conf_desc=Server-1 hat seit 10 Min eine zu hohe CPU-Temperatur
Das ist jetzt nur ein Beispiel, das natürlich auf deine Zwecke angepasst werden muss.

Manuel
SlainteMhath
SlainteMhath 03.07.2008 um 12:21:47 Uhr
Goto Top
Hi,

oder dieser aufbau ist auch möglich
computer - helpdesk mitarbeiter

Na dann mach das doch gleich mit blat.exe (http://www.blat.net) direkt aus SpeedFan heraus.

lg,
Slainte
manuel-r
manuel-r 03.07.2008 um 12:32:55 Uhr
Goto Top
Stimmt. Mit blat geht's natürlich auch.
Syraneus
Syraneus 03.07.2008 um 13:16:59 Uhr
Goto Top
vielen dank für die Lösungen, werde es mal mit der php-version versuchen. ich melde mich dann wie der ob es funktioniert hat vielen dank für die hilfe.

mfg DerChirurg
Syraneus
Syraneus 15.07.2008 um 22:43:25 Uhr
Goto Top
hi, hat funktioniert. vielen dank für die hilfe