Tôi muốn truy cập thư trong Gmail từ một ứng dụng Java bằng JavaMail và IMAP . Tại sao tôi nhận được SocketTimeoutException ?
Đây là mã của tôi:
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);
}
Tôi đã đặt các giá trị thời gian chờ để không mất thời gian chờ "mãi mãi". Ngoài ra, MyAuthenticator cũng có tên người dùng và mật khẩu, có vẻ như thừa với URL. Có cách nào khác để chỉ định giao thức không? (Tôi không thấy nó trong JavaDoc cho IMAP .)