Einzelnen Beitrag anzeigen
  #2  
Alt 03.03.2005, 13:21:01
didi86 didi86 ist offline
Anfänger
 
Registriert seit: Dec 2003
Beiträge: 77
AW: POP3-Postfach auslesen OHNE imap

Hi,
ich bin gerade dabei, ein Webmail-Script zu schreiben, was bisher so aussieht:
PHP-Code:
@$pop3_handle=fsockopen($in_server_url[$i],$in_port[$i]);
if(!
$pop3_handle){
    echo (
"<span class="error">Verbindung zum Server konnte nicht hergestellt werden!</span>");
}else{
    
stream_set_timeout($pop3_handle,2);
    
//Einloggen
    
$connect=fgets($pop3_handle,512);
    
fputs($pop3_handle"user $in_user[$i]rn");
    
$user=fgets($pop3_handle,512);
    
fputs($pop3_handle"pass $in_pass[$i]rn");
    while(
$pass==""){
        
$pass=fgets($pop3_handle,512);
        
usleep(100000);
    }
    if(
substr($pass,0,3)!="+OK"){
        echo (
"<span class="error">Fehler beim Login: ".substr($pass,5)."</span>");
    }else{
        
fputs($pop3_handle"retr $mailrn");
        
$line fgets($pop3_handle512);
        
$header=true;
        while (
substr($line  =  fgets($pop3_handle512), 01) != ".") {
            if(!
$header){
                if(
strtolower($content_transfer_encoding)=="quoted-printable"){
                    
$line2=$line;
                    
$line="";
                    do{
                        if(
substr($line2,0,1)=="="){
                            
$line=$linechr(hexdec(substr($line2,1,3)));
                            
$line2=substr($line2,3);
                        }else{
                            
$line=$linesubstr($line2,0,1);
                            
$line2=substr($line2,1);
                        }
                    }while(
strlen($line2)>0);
                }
                if(
substr($content_type,0,10)=="text/plain" or $content_type==""){
                    
$message.="<br>rn";
                }
                
$message.=$line;
            }else{
                
//$message.="<br>rn".$line;    //Einkommentieren um Header in Mails mit anzuzeigen
                
if(strtolower(substr($line,0,6))=="status"){
                    
$header=false;
                }
                if (
strtolower(substr($line,0,5))=="from:"){
                    
$from=substr($line,6);
                }elseif (
strtolower(substr($line,0,8))=="subject:"){
                    
$subject=substr($line,9);
                }elseif (
strtolower(substr($line,0,5))=="date:"){
                    
$date=substr($line,6);
                }elseif (
strtolower(substr($line,0,26))=="content-transfer-encoding:"){
                    
$content_transfer_encoding=trim(substr($line,27));
                }elseif (
strtolower(substr($line,0,13))=="content-type:"){
                    
$content_type=trim(substr($line,14));
                }elseif (
strtolower(substr($line,1,9))=="boundary="){
                    
$boundary=substr(trim(substr($line,10)),1,-1);
                }
            }
        }
        if(
$content_type=="multipart/alternative;"){
            
$multipart=explode($boundary,$message);
            
$c=0;
            
$val=0;
            echo(
"Diese E-Mail liegt in folgenden Formaten vor: ");
            foreach(
$multipart as $m){
                if(
$c>0){
                    
$mline=explode("n",$m);
                    
$header=1;
                    
$content_type2="";
                    
$content_transfer_encoding="";
                    foreach(
$mline as $lline){
                        if(
$header==1){
                            if (
strtolower(substr($lline,0,13))=="content-type:"){
                                
$content_type2=trim(substr($lline,14));
                                echo(
$content_type2.", ");
                                if(
substr($content_type2,0,10)=="text/plain" and $val<2){
                                    
$message=$m;
                                    
$val=2;
                                }elseif(
substr($content_type2,0,9)=="text/html" and $val<3){
                                    
$message=$m;
                                    
$val=3;
                                }elseif(
$val<1){
                                    
$message=$m;
                                    
$val=1;
                                }
                            }elseif (
strtolower(substr($lline,0,26))=="content-transfer-encoding:"){
                                
$content_transfer_encoding2=trim(substr($line,27));
                                
$header=0;
                            }else{
                            }
                        }
                    }
                }
$c++;
            }echo(
"<br><hr width=100%>");
        }
        echo(
$message);
        
fputs($pop3_handle,"quitrn");
        
$antwort=fgets($pop3_handle,1024);
    }
fclose($pop3_handle);

Das Script kommt derzeit mit etwa der Hälfte meiner Mails klar und unterstützt noch keine Attachments...
__________________
http://schach.didi-site.de
Mit Zitat antworten