imap: Ordnernamen - Sonderzeichen

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?


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?
 
Kannst du die nicht einfach umcodieren? Sprich aus nach Ascii umwandeln? Dann müsste doch Imap immer noch den Befehl annehmen oder sehe ich das falsch?
 
Zurück