Ich möchte mit JavaMail und IMAP von einer Java-Anwendung aus auf Nachrichten in Google Mail zugreifen . Warum erhalte ich eine SocketTimeoutException ?
Hier ist mein Code:
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);
}
Ich habe die Timeout-Werte so eingestellt, dass das Timeout nicht "ewig" dauert. Außerdem verfügt MyAuthenticator über den Benutzernamen und das Kennwort, die mit der URL überflüssig zu sein scheinen. Gibt es eine andere Möglichkeit, das Protokoll anzugeben? (Ich habe es im JavaDoc für IMAP nicht gesehen .)