Christian Kruse: (POP3) Socket-Verbindungen

Beitrag lesen

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