SorgenkindMech: da funktionierts, und da funktionierts nich (pop3)

Beitrag lesen

hi ihr lieben

also ich bin mal wieder am verzweifeln ... und ich hoffe hier weiß jemand rat:

ich habe hier n script, was pop3-mailserver abfragen soll
funktioniert ja soweit ganz gut, zumindest auf dem einen rechner, und auf dem anderen nich ;(

also mein rechner (funktioniert):
winxp pro alle updates
IIs + php 5.2.0 isapi

anderer rechner:
winxp pro alle updates
iis + php 5.2.0 isapi

die php-konfiguration ist unterschiedlich, allerdings meiner meinung nach nichts, was diesen fehler verursachen würde

folgendes script snippet:

diese funktion holt halt die antworten vom server:

function f_get($stream,$b, $einzeilig=0,$endebei="")
{
 global $getzeit;
    $time_start = microtime(1);
 $ok=1;
 global $gettet;
 $tmp2="";
 $gestartet=0;
 while($ok)
 {
  $tmp=fgets($stream);
  if(!isset($gettet[$b])) $gettet[$b]="";
  $gettet[$b].="\r\n".$tmp;
  if($endebei!="" && trim($tmp)==$endebei)
  {
   $ok=0;
   break;
  }
  if($gestartet) $tmp2.="\r\n";
  $tmp2.=rtrim($tmp);
  if(trim($tmp)=="" && $endebei=="") $ok=0;
  if($einzeilig) $ok=0;
  $gestartet=1;
 }
  // $tmp=fgets($stream,3);
//  var_dump($tmp);
//  echo $tmp2."<hr> ";
    $time_end = microtime(1);
    $getzeit[] = $time_end - $time_start;
 return $tmp2;
}

folgende funktion ist für verbindung und login:

function pop3_open($adresse, $benutzer, $pass)
{
 $port=explode(":",$adresse);
 $port=$port[count($port)-1];
 $stream=fsockopen($adresse,$port,$errno,$errstr,6);
 $a=f_get($stream,"pop3",1);
 if(!strtoupper(substr(ltrim($a),0,3))==="+OK") { fputs($stream,"QUIT\r\n"); return false; }
 var_dump($a);
 fputs($stream,"USER ".$benutzer."\n");
 echo "<br />USER ".$benutzer."\n";
 $a=f_get($stream,"pop3",1);
 if(!strtoupper(substr(ltrim($a),0,3))==="+OK") { fputs($stream,"QUIT\r\n"); return false; }
 var_dump($a);
 fputs($stream,"PASS ".$pass."\n");
 echo "<br />PASS ".$pass."\n";
 $a="";
 $a=f_get($stream,"pop3",1);
 if(!strtoupper(substr(ltrim($a),0,3))==="+OK") { fputs($stream,"QUIT\r\n"); return false; }
 var_dump($a);
 return $stream;
}

so, hier mal die testausgaben, wenn ich das ganze auf meinem rechner ausführe:

string(56) "+OK Hello there. 2129.1197579492@localhost.localdomain"
USER bla
string(22) "+OK Password required."
PASS bla
string(14) "+OK logged in."
list
string(14) "+OK 46 1577357"

und nun vom anderen rechner:

string(56) "+OK Hello there. 2128.1197579460@localhost.localdomain"
USER bla
string(0) ""
PASS bla
string(0) ""
list
string(25) "-ERR due to authorization"

es scheint mir fast so, als ob die zeilenenden, gesendet von rechner 2, dort nicht akzeptiet werden ... wie kann das sein?

ich mein der scheint j auch rechner 2 nach USER bla noch auf was zu warten, da er garnich nachm passwort fragt ... (mal ganz davon abgesehen, dass meine prüfung auf "+OK" anscheind nirgens funktioniert, sie ist immer true o.O - ach son quark, den fehler hab ich grad gesehen ... warum setz ich das ! denn vorne hin ... tze ...)

naja wie dem auch sei, der andere fehler bleibt ja bestehen .. hat jemand ne idee?

wär wirklich klasse *hoff*

bis dann