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_handle, 512);
$header=true;
while (substr($line = fgets($pop3_handle, 512), 0, 1) != ".") {
if(!$header){
if(strtolower($content_transfer_encoding)=="quoted-printable"){
$line2=$line;
$line="";
do{
if(substr($line2,0,1)=="="){
$line=$line. chr(hexdec(substr($line2,1,3)));
$line2=substr($line2,3);
}else{
$line=$line. substr($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...