前言:
不管是使用springboot或者ssm,或者是其他框架的时候,总是会有需求要求你去发邮件,比如说当你注册成功之后发一封邮件给用户,告诉他注册成功,或者当用户找回密码的时候也会发邮件验证,因此掌握发邮件还是有必要的。
一、准备工作:
首先,在pom.xml中导入邮件依赖
导入依赖之后我们先来认识几个类:
MailSender:是用来发送一个简单的邮件
JavaMailSender:创建一个复杂邮件
SimpleMailMessage:创建一个简单邮件信息,可以理解为一个模板,里面包含了邮件的基本信息,如邮件要发给谁、邮件的主题是什么等等
MimeMessageHelper:复杂邮件的模板
二、设置发件端邮箱
我们发送端的邮箱使用的是QQ邮箱,因此我们首先要设置发送邮箱的POP3格式等,首先找到设置然后选择账户
在账户下找到POP3等设置项,如果没开启的话点击后面的开启,然后会提示你发送短信去开启,用手机发送短信,之后会受到一个密文,记得保存!
三、配置文件
上面的password内容就是你刚才发完短信给你的密文,而不是你的QQ密码!!!
四、测试发送简单邮件
首先注入MailSender,不管是发送简单邮件还是复杂邮件都需要用到这个接口。然后使用简单模板,把主题和内容这些都设置进去,然后设置发件邮箱和接收邮箱,我这里使用的都是自己的QQ邮箱,这些基本信息设置完之后,我们就调用mailSender中的send方法,很简单是吧,我们来运行看下效果。。
结果:
我们来看下用QQ邮箱给其他类型的邮箱发是否可以,我使用一个163的邮箱,来看下是否可以接收到我QQ邮箱发送的通知,只需要将setTo改为163的地址,然后我们直接来看下结果:
五、发送复杂邮件
我们来发送一个带有附件,字体有特效的邮件,其实和上面类似,首先采用复杂邮件的模板MimeMesage来创建一个模板,然后使用MimeMessageHelper来设置基本信息,最后还是通过send()发送。我们还是以给163邮箱发邮件为例:
前面的就不提了,主要看附件,第一个参数是文件的名字,这个文件名字不是你本地文件的名字,而是你发送给接收方文件的名字,第二个参数是你本地文件的位置,还有一个需要注意的是在setText的时候,第二个参数html需要设置为true,如果不设置为true的话子体的样式就不不显示,我们来看下效果:
我们来查看下附件:
没错是这个内容!到此上传文件功能就介绍完毕,当然你可以结合定时任务和实际业务场景来使用本功能,如果是你公司里面有一套邮件系统,你也可以仿照上面的这种方式来写,思路都是差不多的,直接调用方法就好。