Quiero acceder a los mensajes de Gmail desde una aplicación Java mediante JavaMail e IMAP . ¿Por qué obtengo una excepción SocketTimeoutException? ?
Aquí está mi código:
Properties props = System.getProperties();
props.setProperty("mail.imap.host", "imap.gmail.com");
props.setProperty("mail.imap.port", "993");
props.setProperty("mail.imap.connectiontimeout", "5000");
props.setProperty("mail.imap.timeout", "5000");
try {
Session session = Session.getDefaultInstance(props, new MyAuthenticator());
URLName urlName = new URLName("imap://MYUSERNAME@gmail.com:MYPASSWORD@imap.gmail.com");
Store store = session.getStore(urlName);
if (!store.isConnected()) {
store.connect();
}
} catch (NoSuchProviderException e) {
e.printStackTrace();
System.exit(1);
} catch (MessagingException e) {
e.printStackTrace();
System.exit(2);
}
He configurado los valores de tiempo de espera para que no tarde "una eternidad" en el tiempo de espera. Además, MyAuthenticator también tiene el nombre de usuario y la contraseña, lo que parece redundante con la URL. ¿Existe otra forma de especificar el protocolo? (No lo vi en JavaDoc para IMAP ).