public class MailConnectionTest {
public static void main(String args[]) throws MessagingException {
Properties props = MailConnectionTest.getProperties();
Session session = Session.getDefaultInstance(props, null);
String protocol = "pop3";
String host = "pop.163.com";
String username = "email username";
String password = "1Qaz2wsx3edc&";
Store store = session.getStore(protocol);
store.connect(host, username, password);
System.out.println("Success");
}
private static Properties getProperties() {
Properties props = System.getProperties();
props.put("mail.debug", "false");
// Proxy
props.put("proxySet", "true");
props.put("http.proxyHost", "proxyAdderss");
props.put("http.proxyPort", "8080");
return props;
}
}
答案 0 :(得分:2)
根据Javamail API 1.6.2的最新版本,JavaMail支持通过Web代理服务器访问邮件服务器,并支持对代理服务器的身份验证。请在下面查看我的代码。
{{1}}
答案 1 :(得分:1)
javamail api 1.6支持Web服务器代理
设置这些属性
mail.protocol.proxy.host
mail.protocol.proxy.port
将smtp设置为
mail.smtp.proxy.host
mail.smtp.proxy.port
答案 2 :(得分:0)
请参阅JavaMail FAQ:
...如果没有这样的SOCKS服务器,如果您想使用JavaMail间接访问防火墙外的邮件服务器,您可以使用Corkscrew或connect等程序进行隧道通过HTTP代理服务器的TCP连接。 JavaMail不支持通过HTTP代理Web服务器进行直接访问。
答案 3 :(得分:0)
该实现仅支持Web代理的基本身份验证。您可以在com.sun.mail.util.SocketFetcher中找到源代码。
由于javamail已经支持NTLM身份验证,因此不难为Web代理支持NTLM身份验证。