Javamail et Gmail, Pop3 SSL

j'essaie de connecter mon application Gmail pour consulter vos mails. Je dois utiliser SSL pour POP3.

C'est mon code:

    Properties props = new Properties();

    props.put("mail.host", "pop.gmail.com");
    props.put("mail.store.protocol", "pop3s");
    props.put("mail.pop3s.auth", "true");
    props.put("mail.pop3s.port", "993");

    Session session = Session.getDefaultInstance(props, null);
    Store store=session.getStore();
    store.connect("[email protected]","mypass");

Et j'obtiens cette erreur:

Exception in thread "main" javax.mail.MessagingException: Connect failed;
  nested exception is:
    java.io.IOException: Unexpected response: * OK Gimap ready for requests from x.x.x.x.x z50if25691877wef.13
    at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:210)
    at javax.mail.Service.connect(Service.java:295)
    at javax.mail.Service.connect(Service.java:176)
    at javax.mail.Service.connect(Service.java:196)

Je pense que c'est une bonne nouvelle: le serveur gmail réponse, cependant... semble répondre dans une mauvaise façon de javamail.

Si trouvé ceci sur Protocol.java de javax.mail source: if (ligne.startsWith("+OK")) r.ok = true; Et réponse de google "* OK"...
Tout d'abord, changer de Session.getDefaultInstance à la Session.getInstance. Alors, je pense que si vous regardez la session de débogage de sortie, vous verrez que vous êtes en fait la connexion à imap.gmail.com. Le nom d'hôte correct pour l'accès POP3 est pop.gmail.com. Notez également que vous n'avez pas besoin de l'e-mail.pop3s.le port de la propriété si vous utilisez la valeur par défaut, et il n'y a pas de courrier.pop3s.la propriété auth donc il n'y a pas besoin de la définir. De vérifier la JavaMail FAQ pour un exemple complet.

OriginalL'auteur Tobia | 2012-04-27