小编Dav*_*ave的帖子

使用IMAP从GMail获取邮件到Java应用程序

我想使用JavaMail和IMAP从Java应用程序访问GMail中的消息.为什么我得到SocketTimeoutException

这是我的代码:

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);
}
Run Code Online (Sandbox Code Playgroud)

我设置了超时值,以便不会"永远"超时.此外,MyAuthenticator还具有用户名和密码,这似乎是URL的冗余.还有其他方法来指定协议吗?(我没有在IMD的JavaDoc中看到它.)

java gmail imap

74
推荐指数
4
解决办法
10万
查看次数

标签 统计

gmail ×1

imap ×1

java ×1