javamail 调用office365的邮箱发送邮件----报错到成功问题记录

在尝试通过javamail调用office365邮箱发送邮件时遇到SSL握手失败的问题。为解决此问题,尝试了通过InstallCert.java下载服务器证书,但实际并非证书问题,而是JDK版本导致。问题在于使用JDK 1.7时发送失败,而切换到JDK 1.6后,最初设置的SSL配置即可正常工作。尽管如此,未发现有资料提及JDK版本对发送邮件的影响。附带了InstallCert.java文件和本地调试代码。
摘要由CSDN通过智能技术生成

发送邮件的时候首先报错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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值