使用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);

}

我设置了超时值,这样就不会“永远”超时。另外,MyAuthenticator也具有用户名和密码,这似乎与URL 无关。还有另一种指定协议的方法吗?(我没有在IMAP的JavaDoc中看到它。)


一只斗牛犬
浏览 424回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java