Comment obtenir la liste des dossiers disponibles dans un compte de messagerie à l'aide de JavaMail
Je suis à l'aide de l'API JavaMail pour se connecter à mon compte personnel. J'ai la liste de dossiers (étiquettes) dans mon compte Gmail que j'ai créé + par défaut les dossiers tels que la Boîte de réception, Brouillons, etc. Comment puis-je liste tous les dossiers disponibles (la valeur par défaut et l'utilisateur créé)?
Je peux accéder au dossier en particulier l'utilisation de cette API: Folder inbox = store.getFolder("Inbox");
. Est-il un autre API pour obtenir la liste des dossiers disponibles dans un compte de messagerie?
- Pourquoi avez-vous accepté une réponse qui ne vous donnera pas les résultats que vous recherchez?
Vous devez vous connecter pour publier un commentaire.
Voici le code qui fonctionne. Cela va vous donner la poignée pour toutes les Étiquettes. Pour aller plus loin dans une
folder
, vous pouvez effectuerfolder.list()
ou vous pouvez utiliserstore.getDefaultFolder().list("*")
pour récupérer tous les dossiers et sous-dossiers, comme suggéré dans l'autre réponse.De sortie:
VIEILLE RÉPONSE
Veuillez noter que ce n'est pas correct, c'est à juste titre relevé dans cette réponse par dkarp
Il faut faire:http://java.sun.com/products/javamail/javadocs/javax/mail/Store.html#getSharedNamespaces%28%29
http://java.sun.com/products/javamail/javadocs/javax/mail/Store.html#getUserNamespaces%28java.lang.String%29Folder[] folders= store.getPersonalNamespaces();
quand j'ai essayé ce code les dossiers.la longueur est toujours 1. Mais j'ai 8 dossiers dans mon compte gmail .. Même si j'ai essayé avecFolder[] folders= store.getSharedNamespaces();
la longueur est toujours à zéro.NAMESPACE
de commande, qui aide à la découverte de préfixes pour l'utilisateur authentifié les dossiers, les dossiers des autres utilisateurs, et les dossiers partagés. Mais il n'est certainement pas à faire un dossier d'inscription."*"
dans lelist()
, sinon il sera de retour queINBOX
et la non-sélectionnable[Gmail]
.Sergey est proche, mais, par défaut, JavaMail de
list()
unLIST "" %
, qui vous donne seulement les dossiers de niveau supérieur. GMail met ses dossiers système (Tous les messages, Brouillons, messages Envoyés, Spam, Étoilé, et la Corbeille) en vertu de la non-sélectionnable dossier[Gmail]
, si vous avez vraiment besoin de faire unLIST "" *
à la place. Sinon, vous serez juste en arrièreINBOX
,[Gmail]
, et de vos étiquettes.Voici un exemple de code qui se connecte à GMail, récupère la liste des dossiers, et affiche le nom et le nombre de message pour chaque non-
\NoSelect
dossier (c'est à dire ceux qui ne sont pas juste hiérarchie des espaces réservés, comme[Gmail]
):Vous pouvez accéder à d'autres dossiers comme celui-ci
etc.
Comment sur
store.getDefaultFolder().list()
? Juste une supposition, mais.Vous pouvez essayer ceci: