IPS-Abflug nach "Error in PHP Engine"

Hallo,

kaum dabei und schon wieder ein Problem.

Ich habe mir ein Skript gebastelt (mehrere Fragmente aus dem Forum zusammengefügt und ergänzt), mit dem ich eine POP-Mailbox checken kann und bei definierten Absenderadressen,Betreff und Mailinhalt Skripte ausführe - positive Ausführungen (sprich: Skriptname gefunden und gestartet) werden per Rückmail quittiert.

Das ganze funktioniert supergut (selbst über mehrere Stunden im 10 Sekundentimer) - es sei denn, man hat gerade keinen Zugriff mehr auf die POP-Mailbox, dann versuchts das Skript 2-3 Mal und versursacht dann einen Ausnahmefehler in der ips.exe - IPS wird gekilled.

Meldung im Skript:
„Script Queue Timeout!“

Meldung im Debug:
„Error PHP Engine
.
Error PHP Engine…Retry…
.
Error PHP Engine…Retry…“
20 Sekunden später der Ausnahmefehler.

Meine Versuche, vor IMAP-Aufruf den Status des Webservers abzuchecken (dns-check etc.), sind leider gescheitert - zudem bekomme ich keine Fehlermeldung vom imap :confused:

----Skriptschnipsel--------
imap_timeout(2);
$mailserver=„pop3..de";
$mailserver_out = "smtp.
.de“;
$username=„ips@.de";
$password="
";
//Absender für Bestätigungsmail
$sendermail = "ips@
**.de“;
$sendername = „IP-SYMCON-Statusmail“;
//Betreff für Bestätigungsmail
$subject_out = „IPS-Statusmail“;
//Connect to mailbox
$mailbox = imap_open ("{".$mailserver.":110/pop3}INBOX", $username, $password)
or die("MailRunScript: Keine Verbindung bzw. Login ins Postfach. ".imap_last_error());
// Mail auslesen
----Skriptschnipsel Ende—

Jemand eine Idee dazu ?

viele grüße

cAtMaX

Bevor jemand auf die Idee kommt, mir das Webinterface zu empfehlen…

Ich benutze ebenfalls das Webinterface und finde die bereits jetzt implementierten Funktionen echt super - auf die heating-Funktionen bin ich echt mal gespannt.

Ich benötige trotzdem die „Fernsteuerung per Mail“, weil ich weiß, dass manche Webproxys über die ich online gehe (von Arbeitsplatz aus) Positivlisten oder Blacklists haben, die ich nicht beeinflussen kann - eMail-senden ist aber immer drin (und zur Not funzt das auch mit SMS2mail) - damit bin ich auf jedenfall unabhängig…

Gruß

cAtMaX

…und ich schonwieder…

Habe die Lösung zu meinem Timeout-Problem bei nicht anwortenden Servern gerade selber rausgefunden. Vor dem IMAP-open mache ich erst einen Domain-Socket-Verbindungstest mit 6-Sekündigem timeout. Schlägt der fehl, wird das Skript abgebrochen, gelingts innerhalb von 6 Sekunden, werden die Mails geholt und…

Für die, die es interessiert:
----Code----

//First: Mit Domain-Socket-Verbindung testen, ob der host überhaupt da ist
$fp = @fsockopen ($mailserver, 110, $errno, $errstr, 3);
if ($fp) {
@fclose($fp);
echo "MailRunScript: Host gefunden „.$mailserver.“ „;
} else {
echo „Error connecting to Server „.$mailserver.“:110 "
.$errno.“ „.$errstr.“ ->Stopping MailRunScript“;
exit;
}
----Code----

Falls jemand Interesse an dem ganzen Code hat, bitte kurze PN an mich. (Vielleicht isz das ja sogar was für die "Nützliche PHP-Scripte Ecke ?)

Hier nochmal die Features:

Aufgabe:
Skript nach Eingang von Mail ausführen

Anwendungsgebiete:
Schalten per Mail oder SMS

Ablauf:

  • Checken der Mail
  • Interpretation Mail (Absender, Betreff, Skriptname)
  • Falls der Absender nicht bekannt ist (Definition über Variable) wird nicht gemacht, außer die Mail gelöscht
  • ebenso bei Betreff und Skriptname
  • falls alles in Ordnung ist, wird das Skript ausgeführt und der Absender bekommt eine Antwortmail, dass es funktioniert hat

cu

cAtMaX

Falls jemand Interesse an dem ganzen Code hat, bitte kurze PN an mich. (Vielleicht isz das ja sogar was für die "Nützliche PHP-Scripte Ecke ?)

Klar. Poste dort einfach deinen Code mit einer kleinen Beschreibung und ein paar Leute werden sich bestimmt freuen :slight_smile:

Grüße, paresy