Hallo,
Mit folgendem Code liste ich alle Unterordner auf. Ich frage einen Dovecot Server im lokalen Netzwerk ab.
Bei Ordnern mit wenigen Unterordnern funktionierts.
Der oben genannte Ordner Kunden enthält über 40 Unterordner im ersten Level und sehr viele Unterordner in weiteren Levels. Bei der Auflistung werden mir nur ca 15 Ordner gezeigt. Die anderen werden "unterschlagen". Es gibt keine Fehlermeldung.
Hier die Debugausgabe:
DEBUG: setDebug: JavaMail version 1.4ea
DEBUG: getProvider() returning javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc]
DEBUG: mail.imap.fetchsize: 16384
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.
IMAP DEBUG: AUTH: PLAIN
A0 CAPABILITY
* CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN
A0 OK Pre-login capabilities listed, post-login capabilities have more.
IMAP DEBUG: AUTH: PLAIN
DEBUG: protocolConnect login, host=servernameOderIP, user=user, password=<non-null>
A1 AUTHENTICATE PLAIN
* CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS
A1 OK Logged in
A2 LIST "" "%Kunden%"
* LIST (\HasChildren) "." "! Kunden"
A2 OK List completed.
A3 LIST "" "! Kunden.%"
* LIST (\HasNoChildren) "." "! Kunden.kunde1"
* LIST (\HasChildren) "." "! Kunden.kunde2"
* LIST (\HasNoChildren) "." "! Kunden.kunde3"
* LIST (\HasNoChildren) "." "! Kunden.kunde4"
und noch ein paar mehr
A3 OK List completed.
Hat jemand eine Idee was ich übersehe?
Grüße
Uli
Mit folgendem Code liste ich alle Unterordner auf. Ich frage einen Dovecot Server im lokalen Netzwerk ab.
Code:
String server = "servernameOderIP";
String port = "25";
String user = "user";
String password = "passwort";
String protocol = "imap";
Properties properties = System.getProperties();
properties.put("mail.smtp.host", server);
properties.put("mail.smtp.port", port);
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.user", user);
properties.put("mail.smtp.password", password);
Authenticator auth = new MailAuthenticator(user, password);
Session session = Session.getInstance(properties, auth);
session.setDebug(true);
Store store = session.getStore(protocol);
store.connect(server, user, password);
Folder rootFolder = store.getDefaultFolder();
//Ordner mit ganz vielen Unter- (Unter-) Ordnern
Folder[] subFolders = rootFolder.list("%Kunden%");
//ist nur einer drin
Folder searchFolder = subFolders[0];
//list("*") listet die Ordner in allen Leveln auf
//list("%"), list() listet nur die direkten Unterordner auf
Folder[] folders = searchFolder.list("%");
for(Folder folder : folders){
String fullName = folder.getFullName();
System.out.println(fullName);
}
Der oben genannte Ordner Kunden enthält über 40 Unterordner im ersten Level und sehr viele Unterordner in weiteren Levels. Bei der Auflistung werden mir nur ca 15 Ordner gezeigt. Die anderen werden "unterschlagen". Es gibt keine Fehlermeldung.
Hier die Debugausgabe:
DEBUG: setDebug: JavaMail version 1.4ea
DEBUG: getProvider() returning javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc]
DEBUG: mail.imap.fetchsize: 16384
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.
IMAP DEBUG: AUTH: PLAIN
A0 CAPABILITY
* CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN
A0 OK Pre-login capabilities listed, post-login capabilities have more.
IMAP DEBUG: AUTH: PLAIN
DEBUG: protocolConnect login, host=servernameOderIP, user=user, password=<non-null>
A1 AUTHENTICATE PLAIN
* CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS
A1 OK Logged in
A2 LIST "" "%Kunden%"
* LIST (\HasChildren) "." "! Kunden"
A2 OK List completed.
A3 LIST "" "! Kunden.%"
* LIST (\HasNoChildren) "." "! Kunden.kunde1"
* LIST (\HasChildren) "." "! Kunden.kunde2"
* LIST (\HasNoChildren) "." "! Kunden.kunde3"
* LIST (\HasNoChildren) "." "! Kunden.kunde4"
und noch ein paar mehr
A3 OK List completed.
Hat jemand eine Idee was ich übersehe?
Grüße
Uli