怎么使用spring boot发邮件


这篇文章主要介绍“怎么使用spring boot发邮件”,在日常操作中,相信很多人在怎么使用spring boot发邮件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用spring boot发邮件”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!sprin 香港云主机g boot发邮件还是挺简单的,首先把发邮件的start加到pom里面:然后在application.properties里面配置好关于发邮件的参数其中spring.mail.host和spring.mail.username是一一对应的,哪里的邮箱就要用哪里的smtp服务器然后我写了一个controller来接收留言板的内容:note对象是留言板的内容JavaMailSender和MimeMessageHelper是官方推荐的好基友,一般配套使用fromMail就是在application.properties里面配置的spring.mail.username属性,也就是发邮件的一方,用helper.setTo(…)配置额外说一下,由于填留言板时一般也会留邮件地址,但那个邮件地址和这里的任何一个设置邮件的地方毫无关系,只需要在邮件的文本里面做记录就好了,我之前就弱智了一把,把留言板里面的邮件地址填到helper.setTo(…),结果浪费了我半个小时查这种bug,真是一言难尽… 很多时候,按照上面的方法发邮件会出现下面的错误:其中的一个原因是邮件服务器使用了授权码登录方式,也就是第三方登录不能直接使用账号密码,而需要使用一种授权码的方式,比如上面的163.com邮箱,就可以设置授权码登录,设置界面如下:QQ邮箱更是默认就需要用授权码登录,QQ邮箱的授权登录操作文档请看这里使用授权码登录后,需要把之前application.properties里面spring.mail.password的内容从密码换成授权码,就能够正常发邮件了。我们查下JavaMailSender的代码就知道,它其实背景比较复杂。首先它继承了org.springframework.mail.MailSender接口。而它本身也是一个接口,实现类只有一个,JavaMailSenderImpl我们再来翻JavaMailSenderImpl的代码,发现spring并没有自己来做发送邮件的功能,而是直接用了java自身的邮件发送功能,核心是这一段doSend方法中调用的核心类就是Transport类,这个类的包名是javax.mail。spring不愧是集成大师,java自带的mail功能经过spring的标准化包装就成了spring自身功能的一部分,再通过spring boot的包装,用starter的方式再次做简化,我们就能够直接通过极简的方式使用了。当然,简化的方法多种多样,另外的一种形式的包装就是使用helper类的方法,spring使用的就是MimeMessageHelper。在javax.mail在处理邮件的方式上,使用的是分而治之的办法,不同的类处理不同的问题,所以看到很多的类在处理各种问题和情况。这种做法在实现功能上是很好的,把一个复杂的问题分解成若干个小问题,分别实现。但对使用的开发人员就谈不上友好了,容易出现以下几个问题:不直观,调用者不知道从何下手查找麻烦,类太多而且功能分散,不容易找到对应的功能类关系复杂,经常对要引用哪个类会很没有把握,因为太多处理单一问题的类没有统一的入口,上手难,很难脱离文档直接使用针对上述情况,spring通过MimeMessageHelper,把几乎所有邮件发送需要处理的问题就集中到了这个类里面,使用方便又好找。下面是这个类所有的方法。到此,关于“怎么使用spring boot发邮件”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注开发云网站,小编会继续努力为大家带来更多实用的文章!

相关推荐: [Hadoop in Action] 第1章 Hadoop简介

编写可扩展、分布式的数据密集型程序和基础知识理解Hadoop和MapReduce编写和运行一个基本的MapReduce程序1、什么是HadoopHadoop是一个开源的框架,可编写和运行分布式应用处理大规模数据。Hadoop与众不同之处在于以下几点:方便——H…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 08/14 20:10
下一篇 08/14 20:11

相关推荐