本人这几天在使用springboot做一个发送邮件的功能,一开始针对收件人为个人时,可以发送成功,并且收件人也可以收到邮件,但是新建了一个群组,把相关收件人添加到该群组中,结果一个也收不到邮件,可是返回信息的发送成功。
控制台返回信息:
在此之前,使用.net同样调用ExChange的API,没有出现此类的问题,可以直接发送成功,本人猜测是因为.net和Exchange都是属于微软的,所以在很多技术上都是通的,相互依赖的,为javamail属于第三方API,会有一些差别。
百度搜了一大堆,也没找到具体的解决办法,并且有很多误导性的答案,无力吐槽。以下方法是本人亲测有用的,如果有类似的同学参考此方法,解决了烦请回来给个评论,好的坏的都会参考。或者有更好的能够提供最好,相互学习。
发送邮件的代码就不贴了,因为有些涉及公司的信息,把配置信息贴出如下
给出文字版,方便拷贝:
properties.setProperty("mail.smtp.host", mailHost);//要连接的SMTP服务器properties.setProperty("mail.transport.protocol", "smtp");// 发送邮件协议名称properties.setProperty("mail.smtp.auth", "true");//是否开启身份验证properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");properties.setProperty("mail.smtp.port", "25");properties.setProperty("mail.smtp.socketFactory.port", "25");properties.setProperty("mail.smtp.ssl.trust", mailHost);properties.setProperty("mail.smtp.starttls.enable", "true");//是否将纯文本连接升级为加密连接(TLS或SSL)properties.setProperty("mail.smtp.ssl.checkserveridentity", "false");// 不做服务器证书校验properties.setProperty("mail.smtp.timeout", "80000");//超时session = Session.getInstance(properties, null);// 获取session实体对象session.setDebug(true);// 开启调试信息---------------------可以百度搜索javamail邮件发送,案例很多--------------这里配置没问题,可以发送邮件就可以了,接下来测试发送给群组账号发送,返回发送成功,但是接收做推送的邮箱会返回图中信息,“由于限制传递到此,无法传递您的邮件”![在这里插入图片描述](https://img-blog.csdn.net/20180925150349549?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xlZV9TbWFsbE5vcnRo/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)具体的原因从返回的信息中看不出来,但是解决的办法就是在邮件服务器上对收件的群组修改图中,取消勾选的要求所有发件人通过身份验证即可。![在这里插入图片描述](https://img-blog.csdn.net/20180925150706155?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xlZV9TbWFsbE5vcnRo/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)以上就是本人提供的解决办法,并且测试有用,如有更好的办法可评论区留下您的意见。
如需转载,请标明出处! | |
---|---|