收到预警,公司所有邮件发送的业务都发不出去邮件了。
查看某个服务日志,报错如下:

是邮件服务器做了什么调整了么?
网上搜索该报错是因为客户端和服务器端的ssl协议版本不一致导致的,本地添加如下代码进行测试结果发送成功了。
后找运维确认,确实邮箱服务端做了安全 升级,ssl协议升级到了兼容TLSv1.2,导致我们现在的程序都无法发邮件,需要统一都修改一下程序并发版。
prop.put("mail.store.protocol","TLSv1.2");
Properties prop = new Properties();prop.put("mail.smtp.auth", "true"); // 将这个参数设为true,让服务器进行认证,认 证用户名和密码是否正确prop.put("mail.smtp.timeout", "25000");prop.put("mail.smtp.connectiontimeout", "5000");prop.put("mail.smtp.writetimeout", "25000");prop.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");prop.put("mail.smtp.socketFactory.fallback", "false");prop.put("mail.smtp.port", "465");prop.put("mail.smtp.socketFactory.port", "465");//不校验证书MailSSLSocketFactory sf = new MailSSLSocketFactory();prop.put("mail.store.protocol","TLSv1.2");sf.setTrustAllHosts(true);prop.put("mail.smtp.ssl.enable","true");prop.put("mail.smtp.ssl.socketFactory",sf);// 添加验证MyAuthenticator auth = new MyAuthenticator("用户名", "密码");Session session = Session.getDefaultInstance(prop, auth);senderImpl.setSession(session);// 发送邮件senderImpl.send(mimeMessage);
