Java 通过代理检索邮件时出错
我们正在从gmail服务器检索邮件。我们可以在不使用代理的情况下连接到gmail服务器。由于我们学院有一个代理设置,即使设置了系统属性,我们也无法连接到Gmail服务器。我们可以从浏览器连接到gmail.com,但无法从程序连接Java 通过代理检索邮件时出错,java,Java,我们正在从gmail服务器检索邮件。我们可以在不使用代理的情况下连接到gmail服务器。由于我们学院有一个代理设置,即使设置了系统属性,我们也无法连接到Gmail服务器。我们可以从浏览器连接到gmail.com,但无法从程序连接 Properties props = System.getProperties(); props.setProperty("http.proxyHost", "proxyhost"); props.setProperty("http.proxyPort", "p
Properties props = System.getProperties();
props.setProperty("http.proxyHost", "proxyhost");
props.setProperty("http.proxyPort", "proxynumber");
props.setProperty( "mail.imap.socketFactory.class", SSL_FACTORY);
props.setProperty( "mail.imap.socketFactory.fallback", "false");
props.setProperty( "mail.imap.port", "993");
props.setProperty( "mail.imap.socketFactory.port", "993");
props.put("mail.imap.host", "imap.gmail.com");
Session session = Session.getDefaultInstance(props, null);
store = session.getStore("imap");
store.connect(dialog.getServer(),dialog.getUsername(),dialog.getPassword());
我们得到了这个例外
java.net.UnknownHostException: imap.gmail.com
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:618)
at javax.mail.Service.connect(Service.java:291)
at javax.mail.Service.connect(Service.java:172)
at EmailClient.connect(EmailClient.java:373)
at EmailClient.main(EmailClient.java:475)
by: java.net.UnknownHostException: imap.gmail.com
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(Unknown Source)
at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(Unknown Source
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:284)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:201)
at com.sun.mail.iap.Protocol.<init>(Protocol.java:109)
at com.sun.mail.imap.protocol.IMAPProtocol.<init>(IMAPProtocol.java:104)
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:585)
java.net.UnknownHostException:imap.gmail.com
在com.sun.mail.imap.IMAPStore.protocolConnect上(IMAPStore.java:618)
位于javax.mail.Service.connect(Service.java:291)
在javax.mail.Service.connect(Service.java:172)
在EmailClient.connect(EmailClient.java:373)
main(EmailClient.java:475)
作者:java.net.UnknownHostException:imap.gmail.com
位于java.net.PlainSocketImpl.connect(未知源)
位于java.net.socksocketimpl.connect(未知源)
位于java.net.Socket.connect(未知源)
位于com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(未知源)
位于com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(未知源
在com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:284)
位于com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:201)
位于com.sun.mail.iap.Protocol.(Protocol.java:109)
在com.sun.mail.imap.protocol.IMAPProtocol.(IMAPProtocol.java:104)
在com.sun.mail.imap.IMAPStore.protocolConnect上(IMAPStore.java:585)
很可能您的代理使用NTLM身份验证,我过去在Java和NTLM身份验证方面遇到过问题。但不确定它是否真的是给您带来问题的代理
在任何情况下,与其直接使用JavaMail API,不如看看g4j的使用。它将从总体上消除处理gmail的大部分复杂性
快乐编码
JavaMail不支持访问邮件服务器
通过web代理服务器
如果代理服务器支持SOCKS V4或V5协议并允许
匿名连接,并且您正在使用JDK1.5或更新版本和JavaMail
1.4.5或更新版本,您可以配置SOCKS代理
您能在服务器上执行“nslookup imap.gmail.com”吗?服务器运行的是什么O/S?您是同时代理smtp还是仅代理http?