00:00
好,接下来呢,来测试邮件任务,邮件发送呢,在我们开发中用的也非常多,此boot呢也加入了相关的场景支持,我们只需要引入springb start mail,加上少量的一些配置,我们就可以发送邮件,我们来测试一下,那们现在po文件中啊,引入邮件的场景依赖好把这个复制过来,邮件的这个场景启动器呢,我们来在start里面,我们来查一下,它呢,这个叫spring boat start mail,把它引入好,我们在这呢引入spring boat start mail。好,我们来看一下它的依赖,这一块呢,我们来看到它引入了Java X ma,我们来用来发送邮件的API,好,那我们再来看跟它的自动配置,这自动配置呢,我们自然来到auto con包下来看跟邮件有关的自动配置,我们来找到没有。
01:04
好,这个邮件的自动配置呢,首先这有一个叫mail send auto configuration,好,我们来打开它,下边呢,给我们放了一个组件叫Java mail sender employment,这个组件呢就是用来发送邮件的,当然邮件发送要用的一些属性,这些属性呢,我们都可以在这个mail properties里边配置,这个properties里边呢,我们来看一下能配哪些属性,诶,比如我们邮件的主机啊,我们SMTP主机的地址以及端口,包括用户名,密码等等等等这些我们邮件发送的相关配置都在这儿,特别是呢,我们说邮件发送啊,我们来看一张图,比如我们张三艾特QQ要给李四特163,我们来发邮件,不是说他直接跟他交互的,而是说张三and QQ需要登录他自己的邮箱服务器,就是用账号密码来登录。
02:04
所以说我们要配账号密码登进来以后呢,以他这个账户为名,我们来给李四发邮件,而李四发邮件呢,我们是QQ邮箱服务器,把张三写的这个邮件发给163邮件服务器,李四上线以后呢,再从163邮件服务器获取他的邮件,是这么一个流程,所以我们需要邮件发送配置的是我们发件人的用户名,密码,以及它所在的邮件服务器的地址,好我呢就以QQ邮箱给163发送为例,我这呢有QQ邮箱,然后呢,我们要给163发邮件,那么我们首先得配我来登录进QQ邮箱,那我在这呢来配置一下,来配置文件里边,好我们配置mail。Username,好,我们的用户名,我是。
03:00
这个邮箱qq.com,包括呢,我们的密码mail。没有,第2PASSWORD这个密码呢,大家注意这些QQ邮箱,网易等等,为了安全性,期间填的不是你QQ的这个账号密码,而是什么呢?我们需要来到自己邮箱设置里边,账户里边,首先呢,大家得来开通这些服务,哎,POPP3SMTP等等这些服务开通了以后呢,这有第三方登录邮箱要用一个授权码,这授权码呢,相当于一个独立密码,你如果只用邮箱,那你可以来使用这个授权码作为密码,这样呢就能保证安全,我在这儿填一个授权码,大家呢,就不知道我真正QQ密码是什么了,好,我点个生成授权码,这个呢,需要你手机绑定来给他发短信,好大家等待一会儿我来发送短,好短信呢,我就发送完成了,我点我已发送,那么呢,这有一串授权码,这个授权码就是。
04:08
是需要我们记住的,那我们在这些邮件独立的这个客户端,把这个授权码来填上,包括呢,我们还要填地址。没有点host我们的主机地址,而主机地址填什么呢?填我们这个SMTP服务器的这个地址,那地址呢,大家也应该去来看这smtp pop3服务,哎,如何收发邮件,地址填什么呢?填这个smtp.qq.com意思连线我们的QQ服务器,好,我来配上。SM tp.qq.com配置呢,我们就做完了,我们在这个单元测试里边来测试一下,测试呢,我们只需要注入我们这个Java mail send employment就行了,把这个mail send邮件发送器来注入,自动注入过来,这个怎么发送邮件呢?Mail center它呢有一个方法,比如呢,有一个叫send发送邮件,发送邮件呢能传一些ma类型的邮件,也能传简单的邮件,好,我先来以简单的邮件为例来测试,那我来又一个simple mail message。
05:21
好,我们来先创建一个简单邮件,这个简单邮件呢,我们把它传递过来。这就发送了,而邮件的信息,我们这个邮件设置,设置什么呢?比如邮件的标题啦,我们来set subject,哎,这是标题,标题呢,比如通知咱们这个今晚开会好,这是邮件标题,包括邮件的内容啦,比如set test,那么这个内容我们就来写上,今晚07:30开会好,我们写个这个,那么这时邮件的一些内容以及标题,那么再来设置上邮件要给谁发,我们添加一个,有一个叫set to,能发给谁,可以还可以写多个地址,好,我们就来写上一个,能给我这个网易发。
06:13
好163.com好,包括呢,我们这个邮件是谁发的,我们还可以set from,我们也可以来设置上,比如呢,是我们这个邮箱qq.com,那我们把这些设置完了以后呢,我们就来测试看能不能发出去。好,我们等待它进行发送来,我们发现呢,这会有报错,报错的原因呢,我们来看一下530 530,它说需要一个安全的连接,比如SSL,比如说我们这个连接QQ邮箱的话,它是需要安全连接的,我们得需要额外配一些东西,配置什么呢?我们来到application properties里边,额外的配置呢,都写在mail.properties里边来以KY6的方式来写上mail,点有一个SMTP.ssl.able们来开启SSL,然后呢,我们再来测试。
07:14
我们看现在能不能发送成功。诶,我们发现呢,这一块邮件已经发送成功,我们来网易这个邮箱里边,我来接收一下,我来刷新,诶在未读邮件里边呢,就有一个今晚开会,哎,我们这个邮件呢,就发出来了,没问题,当然我们测试的这个呢,只是一个简单邮件发送,我们如何发送一个带附件的或者一些HTML页面的复杂邮件呢?那在这来测试一下。这个呢也比较简单来测,在第二个方法里边好T02。好,我们把这个test来写上,这块呢我来复制过来,但是大家注意,简单右键我们用的叫simple mail message,而复杂右键要怎么做呢?我们首先第一步我们先来创建一个。
08:13
复杂的消息邮件怎么创建呢?我们利用mail center.create ma message创建出来这个ma message呢,就是我们最终要发送的消息,比如我们要给它来设置一些内容标题等等,但是直接用它来设置是不行的,它没有这个方法的支持,那我们这一块要怎么设置呢?好,我把这一块呢都删掉,我们需要用一个Java mail helper啊,我们有一个叫my message helper,买你有一个my message helper,好,这个helper呢,我们将这个message传进来,我们来看这个help,它呢有有一些方法,比如呢,我们把my message传过来,是否要进行编码,是否multi part,诶第二个叫是否multi part,如果我们要上传文件,那我们就来写成multi part,好,那我就把它传进来,我也来写一个触好,我准备呢。
09:14
要上传文件,那把它创建出来以后呢,我们看到这个helper,拿到helper以后,我们使用helper来给它设置内容。这红色报错呢,这是有异常,那我们就来声明,把这异常抛出来就行好,那么设置内容呢,比如我还可以把它的这个内容设成一个HTML片段,比如我们来写一个B来加粗的一段文字。好,今天07:30开会,这段文字呢,我还可以写上HTML的一些样式,比如死掉等于color red。等等等,也就是说我们就能兼容HTML片段了,包括呢,比如我要上传一些文件,那怎么办呢?我们还可以用这个shop。
10:09
买上。上传文件,上传咱们这个附件help它呢有一个点and attachment,诶那attachment呢,就有我们这个attachment名字,我们这个文件名,比如1.gpg。而接下来呢,第二个传的是我们这个,我们来点进来是我们这个文件fair或者一个流都行,那我就直接来有一个file,你把这个文件呢传进来,包括比如我来多上传两个文件,这有一个一,我们再来上传一个二。我呢,就从电脑里边,我来找到两个文件,我们在这个图片里边,好来找两个图片12JPG,好我来把这个图片的路径把它复制来。
11:05
复制来咱们这个图片的路径,我们把它复制过来,好,来加上这个径,好,这是一二,我们来测试一下这个带附件的邮件发送运行。好,我们稍等。好,邮件呢,发送成功,我们在这儿收取一下,我来刷新来到这个收件箱,这有通知,今晚开会,这个开会呢,文档有,包括这个附件呢也有,只不过这个文本这一块呢,它写的还是这个B标签,这由于我们在这设置文本的时候,Set test来点进来,它呢其实还有一个属性叫HTMMR,默认呢是first,我呢把它设为true,比我写的这段内容,它是一个HTMMR,我们来重新发送测试一下。
12:01
好。来等待它发送成功。好,这一块呢,发送成功,我们来收件箱里边收取这个邮件,诶我们HTML也生效,包括呢,我们附件也都在这儿,那么一切正常。
我来说两句