Raven280438
Erfahrenes Mitglied
Hi,
ich habe ein Webmail-Skript geschrieben, funktioniert auch alles so weit.
Wenn ich jedoch mit Thunderbird oder Outlook Express einen Ordner mit Umlaut erstelle, wird er bei mir mit einem ? vor dem Umlaut angezeigt. Werden hingegen Ordner mit meinem Skript erstellt (auch mit Umlauten) läuft alles richtig.
Ich habe die Namen schon mittels imap_utf7_decode() dekodiert, aber das ? ist trotzdem davor. Dadurch kann ich die Ordner auch nicht Löschen, Umbenennen usw.
In Outlook Express hingegen wird das ? nicht angezeigt und die Ordner können auch gelöscht werden.
Unkodiert wird aus "Entwürfe" z.B. "Entw�ürfe".
Weis jemand was das für eine Kodierung sein könnte oder hat jemand Ahnung wie ich das Problem lösen könnte?
Wenn ich nach dem imap_deletemailbox() ein imap_errors() mache kommt als Fehlermeldung "Mailbox doesn't exist: Entw" wenn der Ordner in $checkboxes "Entw?ürfe" war.
Hat sich schonmal jemand mit imap und php beschäftigt und hätte eine Idee?
ich habe ein Webmail-Skript geschrieben, funktioniert auch alles so weit.
Wenn ich jedoch mit Thunderbird oder Outlook Express einen Ordner mit Umlaut erstelle, wird er bei mir mit einem ? vor dem Umlaut angezeigt. Werden hingegen Ordner mit meinem Skript erstellt (auch mit Umlauten) läuft alles richtig.
Ich habe die Namen schon mittels imap_utf7_decode() dekodiert, aber das ? ist trotzdem davor. Dadurch kann ich die Ordner auch nicht Löschen, Umbenennen usw.
In Outlook Express hingegen wird das ? nicht angezeigt und die Ordner können auch gelöscht werden.
Unkodiert wird aus "Entwürfe" z.B. "Entw�ürfe".
Weis jemand was das für eine Kodierung sein könnte oder hat jemand Ahnung wie ich das Problem lösen könnte?
PHP:
//Ordnerliste anzeigen
$eigene = imap_list($mbox,$mailbox,"*");
for ($i=0;$i<count($eigene);$i++) {
$strpos = strpos($eigene[$i],"}");
$postfach = substr($eigene[$i],$strpos+1);
if ($postfach != "INBOX") {
[...] // Postfachname usw. ausgeben
}
PHP:
//Postfach löschen
//$checkboxes ist ein Array mit den zu löschenden Ordnernamen mit base64 kodiert
//$mailbox_delete ist der Verbindungspfad, z.B. "localhost:143/novalidate-cert"
for ($i=0;$i<count($checkboxes);$i++) {
$checkboxes[$i] = base64_decode($checkboxes[$i]);
$delete = imap_deletemailbox($mbox,$mailbox_delete.$checkboxes[$i]);
}
Wenn ich nach dem imap_deletemailbox() ein imap_errors() mache kommt als Fehlermeldung "Mailbox doesn't exist: Entw" wenn der Ordner in $checkboxes "Entw?ürfe" war.
Hat sich schonmal jemand mit imap und php beschäftigt und hätte eine Idee?