java发邮件出现A secure connection is requiered(such as ssl)错误

我用的是QQ邮箱,使用的是java提供的发邮件API JavaMail
完整的错误提示是Caused by: javax.mail.AuthenticationFailedException: 530 Error: A secure connection is requiered(such as ssl). More information at http://service.mail.qq.com/cgi-bin/help?id=28

AuthenticationFailedException就是身份验证失败异常,说需要一个安全链接(例如ssl),后面的地址是qq邮箱的帮助中心,上网搜了一下,原来第三方客户端登录邮箱时需要用专门的授权码登录。
授权码de获取
打开QQ邮箱的设置-账户,找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
这里写图片描述
点击开启 ,我这里已经开启了
之后就会得到一个十六位的授权码,用这个授权码替换你的登录密码

本以为问题已经解决,没想到还是报错,再去搜发现还要开启ssl加密,就是加上下面的代码,这里没搞懂这个ssl是什么,但问题是解决了,成功发送邮件。

        //开启ssl加密
        MailSSLSocketFactory sf = new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
        props.put("mail.smtp.ssl.enable",true);
        props.put("mail.smtp.ssl.socketFactory",sf);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值