Hallo,
ich habe mir eine kleine PHP-Klasse geschrieben, mit der ich E-Mails von einem Pop3 Postfach abrufen kann. Das Funktioniert auch alles sehr gut. Nur leider bekomme ich die E-Mails fehlerhaft angezeigt.
1. Werden mir keine Umlaute angezeigt (=FC -> ü, usw.)
2. Bekomme ich, wenn in der Nachricht Umlaute enthalten sind vor der eigentlichen Nachricht einen komischen String (z.B: "<=21--=5Bif gte mso 9=5D>")
3. Wird ein Umlaut in dem Betreff der E-Mail angegeben sieht das ergebnis so aus: "treff äöüäöüß" wird => "=?ISO-8859-1?B?dHJlZmYg5Pb85Pb83w==?="
Meine Seite ist komplett UTF-8 codiert.
Hier noch einmal die komplette E-Mail Klasse
Ich denke ihr könnt mir helfen
Vielen Dank im voraus
ich habe mir eine kleine PHP-Klasse geschrieben, mit der ich E-Mails von einem Pop3 Postfach abrufen kann. Das Funktioniert auch alles sehr gut. Nur leider bekomme ich die E-Mails fehlerhaft angezeigt.
1. Werden mir keine Umlaute angezeigt (=FC -> ü, usw.)
2. Bekomme ich, wenn in der Nachricht Umlaute enthalten sind vor der eigentlichen Nachricht einen komischen String (z.B: "<=21--=5Bif gte mso 9=5D>")
3. Wird ein Umlaut in dem Betreff der E-Mail angegeben sieht das ergebnis so aus: "treff äöüäöüß" wird => "=?ISO-8859-1?B?dHJlZmYg5Pb85Pb83w==?="
Meine Seite ist komplett UTF-8 codiert.
Hier noch einmal die komplette E-Mail Klasse
PHP:
<?php
class mail {
public function init() {
self::showMails();
}
public function getMails() {
$mbox = self::connectToPop3();
if($mbox != false) {
$mails = array();
$msgNumbers = imap_num_msg($mbox);
for($i = 1; $i <= $msgNumbers; $i++) {
$header = imap_header($mbox, $i);
//print_r($header);
$from = $header->from;
foreach ($from as $id => $object) {
$fromname = $object->personal;
$fromaddress = $object->mailbox . "@" . $object->host;
if($fromname == '') $fromname = $fromaddress;
}
$from = $header->to;
foreach ($from as $id => $object) {
$toname = $object->personal;
$toaddress = $object->mailbox . "@" . $object->host;
if($toname == '') $toname = $toaddress;
}
$mails[] = array('subject' => $header->subject, 'date' => $header->date, 'fromname' => $fromname, 'fromaddress' => $fromaddress, 'toname' => $toname, 'toaddress' => $toaddress, 'msgNumber' => $i);
}
return $mails;
} else {
return false;
}
}
public function showMails() {
global $smarty;
$mails = self::getMails();
if($mails == false) {
echo "Error: imap_open";
} else {
$smarty->assign('mails', $mails);
}
Toolchen::display('inbox.tpl');
}
public function showMailContent($args) {
global $smarty;
$mbox = self::connectToPop3();
$header = imap_header($mbox, $args['msgNumber']);
$from = $header->from;
foreach ($from as $id => $object) {
$fromname = $object->personal;
$fromaddress = $object->mailbox . "@" . $object->host;
if($fromname == '') $fromname = $fromaddress;
}
$from = $header->to;
foreach ($from as $id => $object) {
$toname = $object->personal;
$toaddress = $object->mailbox . "@" . $object->host;
if($toname == '') $toname = $toaddress;
}
$body = imap_fetchbody($mbox, $args['msgNumber'], "2");
$mail = array('subject' => $header->subject, 'date' => $header->date, 'fromname' => $fromname, 'fromaddress' => $fromaddress, 'toname' => $toname, 'toaddress' => $toaddress, 'msgNumber' => $i, 'msgBody' => $body);
$smarty->assign('mail', $mail);
Toolchen::display('mailDetail.tpl');
}
public function connectToPop3($plg = 0) {
require_once('../'.Toolchen::includePlg('users'));
$user = new Users;
$data = $user->getData(USER_ID);
if(function_exists('imap_open')) {
return imap_open ("{".$data[0]['usr_mail_server']."/pop3/notls}", $data[0]['usr_mail_user'], $data[0]['usr_mail_pass']);
} else {
return false;
}
}
}
?>
Ich denke ihr könnt mir helfen
Vielen Dank im voraus