Impossible de récupérer la boîte de réception Gmail avec JavaMail POP


J'essaie de récupérer les messages non lus de la boîte de réception Gmail avec Javamail, mais je ne peux pas. Je ne récupère que les messages archivés (à partir de 2011!!!) et je ne sais pas pourquoi ou comment le faire.

Voici mon code:

public List<DefaultMessage> getLatestNthMessages(Integer numberOfMessages) throws Exception {
    URLName url = new URLName("pop3", "pop.gmail.com", 995, "",username, password);
    Store store = new POP3SSLStore(pullSession, url);
    store.connect();
    Folder inbox = store.getFolder("INBOX");

    inbox.open(Folder.READ_WRITE);

    SearchTerm st = new FlagTerm(new Flags(Flags.Flag.SEEN), false);
    List<Message> msgs = Arrays.asList(inbox.search(st)).stream()
                                                        .sorted((m1, m2) -> m2.getMessageNumber() - m1.getMessageNumber())
                                                        .limit(numberOfMessages)
                                                        .collect(Collectors.toList());
    List<DefaultMessage> listOfMessages = new ArrayList<>();
    for (Message message : msgs) {
        listOfMessages.add(wrapperToMessage(message));
    }

    return listOfMessages;
}

pullSession est instancié comme suit:

    Properties pullProps = new Properties();

    pullProps.put("mail.pop3.host", pullHost);
    pullProps.put("mail.pop3.username", username);
    pullProps.put("mail.pop3.port", pullPort);
    pullProps.put("mail.pop3.socketFactory.port", pullPort);
    pullProps.put("mail.pop3.socketFactory.fallback", "false");
    pullProps.put("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    pullProps.put("mail.pop3.auth", "true");

    pullSession = Session.getInstance(pullProps, null);

    pullSession.setDebug(true);
Author: Tunaki, 2015-09-30

1 answers

Vérifiez vosParamètres Gmail pour POP3.

De plus, il y a beaucoup de choses que vous pouvez améliorer dans votre code, bien qu'elles ne soient pas la source de votre problème. Commencez par corriger toutes les erreurs JavaMail courantes .

Vous ne devriez pas créer un POP3SSLStore directement. Utilisez leexemple de code Gmail dans la FAQ JavaMail .

 1
Author: Bill Shannon, 2015-09-30 19:21:01