Hi,
jetzt werde ich euch auch mal mit einem Problem behelligen ;)
Ich möchte gern in PHP ein POP3-Modul schreiben (ja, ich weiß, es gibt bereits Funktionen dafür - aber
ich habe einfach Spaß daran ;) ).
Das Problem ist nicht, daß ich nicht wüßte wie, nein, ich habe über einen Socket eine Verbindung
zum Port 110 (POP3) aufgebaut. Jetzt sollte laut RFC 1225 (http://rfc.fh-koeln.de/rfc/html/rfc1225.html)
eine Verbindungs-Bestätigung geschickt werden - das Problem ist nur, daß sie anscheinend nicht im
Socket ankommt: das Script verfängt sich in einer Endlos-Schleife und bricht nach 30 Sek
(MaxExecutionTime) ab.
Der Quelltext sieht im Moment folgendermaßen aus:
function connect()
{
$txt = "";
if(($this->sock = fsockopen($this->host, $this->port, &$this->errno, &$this->errmsg, 30)))
{
while(!feof($this->sock))
{
echo fgets($this->sock,1);
flush();
}
}
}
Auch, wenn ich _nicht_ auf die Verbindungs-Bestätigung warte, so kommt jedoch auch keine
Bestätigungs-Meldung auf das USER-Kommando.
Auch die Verbindung wird aufgebaut:
Sep 18 20:15:01 server popper[19279]: connect from wwwrun@192.168.0.2 (192.168.0.2)
Ein Log von tcpdump ist unter http://wwwtech.de/txt/log.txt verfügbar: es ist zu sehen, daß
durchaus Pakete zurück geschickt werden - nur anscheinend können sie nicht ausgelesen werden.
Das seltsame ist, daß ein einfacher GET an den Apache durchaus funktioniert; die Bestätigungen
des POP-Servers selber werden auch brav ausgespuckt, wenn ich das ganze über telnet ausprobiere.
Weiß einer vielleicht, woran das liegen könnte?
mfg
CK1