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