maik87
Goto Top

IMAP List Problem

Hallo zusammen,

ich knobel seit Stunden an einer Sache.

Vielleicht könnt ihr mir helfen:


Wieso gibt
LIST "*" "Gesendet"  

folgendes aus:
* LIST (\HasNoChildren \Sent) "/" "[Google Mail]/Gesendet"  

LIST "Google Mail" "Gesendet"  
und sehr viele ähnliche Konstelationen aber garnichts??

Content-ID: 218188

Url: https://administrator.de/forum/imap-list-problem-218188.html

Ausgedruckt am: 26.12.2024 um 19:12 Uhr

colinardo
colinardo 01.10.2013 um 08:32:28 Uhr
Goto Top
Hallo Maik87,
zuerstmal fehlt bei deiner Ordnerangabe der Slash und ein eindeutiger Prefix vor jedem IMAP-Befehl
A01 LIST "Google Mail/" "Gesendet"
Bei Verwendung eines "*" in im Reference-Parameter ist der Slash ja schon mit enthalten(Wildcard).
Mehr Informationen zum LIST Befehl kannst du hier nachlesen:
http://tools.ietf.org/html/rfc1730#section-6.3.8

Grüße Uwe
Maik87
Maik87 01.10.2013 um 08:51:23 Uhr
Goto Top
Guten Morgen,

danke für deine Antwort.

Ich habe letzte Nacht noch eine Lösung gefunden - aber wie sauber oder dirty die ist - keine Ahnung.
Ist das "[Google Mail]" der Teil des Namens oder ist es das Namespace? Hier hänge ich bereits...

Die Anwendung, die ich etwas weiterentwickel sagt nämlich, dass der Namespace leer ist.
Der Code sah vorher so aus:

List "NAMESPACE" "ORDNER"  

Habe es nun so gelöst, dass wenn Namespace = leer, dann setze ich den Namespace auf * und suche nach "[Google Mail]/Gesendet".

Sprich:
List "*" "[Google Mail]/Gesendet"  



Es klappt, aber ob's sauber ist!?
colinardo
colinardo 01.10.2013 aktualisiert um 09:05:44 Uhr
Goto Top
Hättest du die IETF Referenz i. o. Link gelesen wärst du bereits schlauer;
Ausschnitt
6.3.8.  LIST Command

.....
An empty ("" string) reference name argument indicates that the mailbox name is interpreted as by SELECT. The returned mailbox names MUST match the supplied mailbox name pattern.  A non-empty reference name argument is the name of a mailbox or a level of mailbox hierarchy, and indicates a context in which the mailbox name is interpreted in an implementation-defined manner.
...
Maik87
Maik87 01.10.2013 um 09:31:51 Uhr
Goto Top
Hmm... Mein Englisch :/

Also, ich versteh es so:

Wenn bei LIST das erste Argument leer ist, dann wird anstatt LIST ein SELECT auf das zweite Argument ausgeführt, wobei der angegebene Mailboxname dabei exakt übereinstimmen muss.

Ist das Argument hingegen nicht leer, dann ist das der Name der Mailbox.

Was ist bei mir überhaupt die Mailbox?? "Gesendet" oder "[Google Mail]" oder "[Google Mail]/Gesendet"?
colinardo
colinardo 01.10.2013 aktualisiert um 12:36:47 Uhr
Goto Top
Zitat von @Maik87:
Hmm... Mein Englisch :/
absolute Voraussetzung um effektiv zu programmieren ... vor allem weil viele APIs und DOKUs nur in Englisch verfügbar sind, und man sehr viel mehr im Web findet wenn man auf Englisch sucht.
Wenn bei LIST das erste Argument leer ist, dann wird anstatt LIST ein SELECT auf das zweite Argument ausgeführt, wobei der
angegebene Mailboxname dabei exakt übereinstimmen muss.
nicht ganz, du kannst im zweiten Argument auch Wildcards benutzen, dabei kann ein "*" auch rekursiv unterordner selektieren, wenn du stattdessen ein % benutzt wird nur auf der Ebene des angegebenen Ordners gesucht.
Was ist bei mir überhaupt die Mailbox?? "Gesendet" oder "[Google Mail]" oder "[Google
Mail]/Gesendet"?
Der Begriff Mailbox steht für einen beliebigen Ordner in deinem Account