发送邮件的时候首先报错ssl shakehands失败,报错没有找到可用的证书,网上搜到相关的靠谱的方案是
MailSSLSocketFactory sf = null;
try {
sf = new MailSSLSocketFactory();
} catch (GeneralSecurityException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
sf.setTrustAllHosts(true);
// pro.put("mail.smtp.ssl.enable", "true");
// pro.put("mail.smtp.ssl.trust", "*"); // 不影响
pro.put("mail.smtp.ssl.socketFactory", sf); //这句加上后才发送成功,不加的话就发送不成功
pro.put("mail.smtp.socketFactory.fallback", "false");
不过设置了这个之后发现并不能够发送成功,后来联系365offic的工作人员,提到证书的时候他们说他们是有个证书的,发过来了一个,然而安装后也并没有用。
后来网上搜到通过InstallCert.java来从服务器上下载证书,下载的过程是编译InstallCert.java文件,然后运行java InstallCert SMTP.partner.outlook.c