C3000
Mitglied
Guten Morgen
Ich programmiere derzeit ein Modul in Javascript, dass mir über ein PHP-Script E-Mails von einem Microsoft Exchange Server per POP3 holt.
Das ganze funktioniert wunderbar, jedoch enthalten die E-Mails diese ascii-codes, zumindest glaub ich das es diese sind:
(From: "Hofmann, Simone" <simone.hofmann@xxx.de>
(Subject: =?iso-8859-1?Q?neue_Kennwortregeln_f=FCr_die_BDS?=)
Ich habe schon versucht mit utfen/decode zu arbeiten, allerdings verstehe ich nicht was php für ein Problem hat. Ob nun der Server die Daten in UTF8 schickt und php damit Probleme hat oder umgekehrt oder ob es nun ein ganz anderes Problem ist weiß ich nicht. Und ohne zu wissen was Falsch ist lässt sich ein Fehler schwer beheben.
Hier noch ein kleiner Codeausschnitt:
Danke schon mal für eure hilfe.
MfG
Ich programmiere derzeit ein Modul in Javascript, dass mir über ein PHP-Script E-Mails von einem Microsoft Exchange Server per POP3 holt.
Das ganze funktioniert wunderbar, jedoch enthalten die E-Mails diese ascii-codes, zumindest glaub ich das es diese sind:
(From: "Hofmann, Simone" <simone.hofmann@xxx.de>
(Subject: =?iso-8859-1?Q?neue_Kennwortregeln_f=FCr_die_BDS?=)
Ich habe schon versucht mit utfen/decode zu arbeiten, allerdings verstehe ich nicht was php für ein Problem hat. Ob nun der Server die Daten in UTF8 schickt und php damit Probleme hat oder umgekehrt oder ob es nun ein ganz anderes Problem ist weiß ich nicht. Und ohne zu wissen was Falsch ist lässt sich ein Fehler schwer beheben.
Hier noch ein kleiner Codeausschnitt:
Code:
Function RetrieveMessage($message,&$headers,&$body,$lines)
{
if($this->state!="TRANSACTION")
return($this->SetError("connection is not in TRANSACTION state"));
if($lines<0)
{
$command="RETR";
$arguments="$message";
}
else
{
$command="TOP";
$arguments="$message $lines";
}
if($this->PutLine("$command $arguments")==0)
return($this->SetError("Could not send the $command command"));
$response=$this->GetLine();
if(GetType($response)!="string")
return($this->SetError("Could not get message retrieval command response"));
if($this->Tokenize($response," ")!="+OK")
return($this->SetError("Could not retrieve the message: .$this->Tokenize("\r\n")));
for($headers=$body=array(),$line=0;;)
{
$response=$this->GetLine();
if(GetType($response)!="string")
return($this->SetError("Could not retrieve the message"));
switch($response)
{
case ".":
return("");
case "":
break 2;
default:
if(substr($response,0,1)==".")
$response=substr($response,1,strlen($response)-1);
break;
}
if($this->join_continuation_header_lines
&& $line>0
&& ($response[0]=="\t"
|| $response[0]==" "))
$headers[$line-1].=$response;
else
{
$headers[$line]=$response;
$line++;
}
}
for($line=0;;$line++)
{
$response=$this->GetLine();
if(GetType($response)!="string")
return($this->SetError("Could not retrieve the message"));
switch($response)
{
case ".":
return("");
default:
if(substr($response,0,1)==".")
$response=substr($response,1,strlen($response)-1);
break;
}
$body[$line]=$response;
}
return("");
}
Function GetLine()
{
for($line="";;)
{
if(feof($this->connection))
return(0);
$line.=fgets($this->connection,100);
$length=strlen($line);
if($length>=2
&& substr($line,$length-2,2)=="\r\n")
{
$line=substr($line,0,$length-2);
if($this->debug)
$this->OutputDebug("S $line");
return($line);
}
}
}
Danke schon mal für eure hilfe.
MfG