发送邮箱,公司内只能做代理发送,邮箱代理是这么配置吗,为啥老失败。
不加服务器代理的时候是可以正常发送的,加上就失败了。以为是代理服务器那边有问题,但是测试了对应的ip和端口号能通,也上对应代理机子可以正常访问外网。估摸着还是这边配置的有问题。各位大腿啾咪
代码:
public static void initEmail(String sender,String code,String server){
//1 创建与服务器的会话
//1.1 创建会话之前先设置一些参数
Properties properties = new Properties();
properties.setProperty("proxySet", "true");
// properties.setProperty("mail.smtp.socks.host","192.168.57.60");
// properties.setProperty("mail.smtp.socks.port","9090");
properties.setProperty("mail.smtp.host",server);//设置所要连接的邮箱服务器是哪个
// properties.setProperty("mail.smtp.port","465");//连接端口
// properties.setProperty("mail.smtp.socketFactory.port","465");
// properties.setProperty("mail.smtp.ssl.enable", "true"); //开启ssl加密
// properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.transport.protocol","smtp");//发送邮件采用什么协议
System.setProperty("socksProxyHost","192.168.57.60");
System.setProperty("socksProxyPort","9090");
//1.2 创建会话
session = Session.getDefaultInstance(properties);
session.setDebug(true);//开启日志
//2 连接用于发送的账号
try {
EmailUtil.sender = sender;
ts = session.getTransport();//创建传输对象
ts.connect(sender,code); //连接到指定账号,后面是授权码
} catch (Exception e) {
e.printStackTrace();
}
}
异常