Java项目实战第5天:邮箱激活业务

今天是刘小爱自学Java的第104天 。
感谢你的观看 , 谢谢你 。
话不多说 , 开始今天的学习:
Java项目实战第5天:邮箱激活业务
文章图片
注册某个网站一般都需要邮箱激活:
注册后 , 该网站会给你填写的邮箱发送一条激活信息 , 点击对应的链接即可完成激活 。
激活成功后 , 就可以正常登录该网站了 。
而该业务就可以通过Java代码实现:
关于邮件激活这一块 , 老实说本来不打算专门花一晚上时间学习的 。
毕竟这种类型的知识点需要用到的时候相对而言很少 , 就算遇到了通过网络也能解决 。
后来我想了想 , 我能够通过网络查询到别人的教程 , 那为何不能让别人查询我的笔记呢?
所以还是花了一个晚上的时间来学习 , 同时也方便自己以后遇到该需求后查看 。
一、Java发送邮箱
既然是发送邮箱 , 首先需要一个固定的发送邮箱地址 , 而这个邮箱要开通POP3服务 。
Java项目实战第5天:邮箱激活业务
文章图片
我这边使用的是网易提供的邮箱 , 通过邮箱的设置可以开启该服务 。
开启服务后 , 需要通过手机号验证;验证成功会获得一个授权码 , 这个需要记下来 。
有了这个授权码之后 , 就可以通过Java代码发送邮箱了 , 发件人也就是该邮箱 。
当然发送邮件的技术挺多的 , 我这边使用的是apache提供的commons-mail 。
导入该依赖后就可以编写代码了 。
代码编写如下:
Java项目实战第5天:邮箱激活业务
文章图片
①创建htmlEamil对象
apache-mail中是使用HtmlEmail这个类来操作邮件的 。
②配置服务器参数
setHostName:设定服务器地址 。
setAuthentication:翻译过来就是认证的意思 , 所以需要输入邮箱名和授权码 。
③设置发件人和收件人
setCharset:设定编码格式为“gb2312” , 国家制定的一套标准 , gb即国标的拼音缩写 。
setFrom:这个是设定发件人 , 也就是上述获取授权码的那个邮箱 。
setaddTo:这个是设定收件人 , 也就是谁注册就是谁的邮箱 , 动态获取 , 我这边测试就先用我自己的另一个邮箱代替 。
④设置邮件的主题和正文
setSubject:发给用户的邮件标题 , 一般都是“XXX网站激活邮件”
setMsg:发送正文 , 一般都是“恭喜你 , 注册成功!请点击链接激活” , 再附带一个链接 。
我这边先就随便填一个链接作为测试 。
⑤发送邮件
send方法发送邮件 , 见名知意 。
二、发送邮件及测试
1配置文件封装
和jdbc一样 , 可以将上述的代码封装到一个工具类中 , 并且关于服务器的配置信息也封装到一个配置文件中 。
Java项目实战第5天:邮箱激活业务
文章图片
①通过类加载器加载配置文件
MailUtil.class.getClassLoader():获取MailUtil的类加载器 。
getResourceAsStream():翻译就是以流的方式获取源文件 , 参数为配置文件路径 。
这样就获取了该配置文件对应的流 。
②获取配置文件中的各个属性
load():将对应的流加载进properties 。
getProperty():获取参数对应的值 。
2发送邮件方法封装
将发邮件代码封装进一个方法中 , 通过配置文件 , 使代码更具有拓展性 。
Java项目实战第5天:邮箱激活业务
文章图片
在自定义的工具类MailUtil中创建一个静态方法sendEamil():
将发送邮件的代码封装进该方法中 , 需要发送邮件时用MailUtil调用sendEamil方法即可 。
其中sendEamil方法有两个参数:
userEamil:用户注册时填写的邮箱 , 也就是收件人的邮箱 。
msg:需要发送给用户的邮件信息 。
3发送邮件代码补全
那什么时候发送邮件呢?
当用户激活成功后即可发送邮件:
Java项目实战第5天:邮箱激活业务
文章图片
在UserServlet中 , 昨天实现了注册功能 , registerFlag作为结果响应给前端 。
其中如果为true表示注册成功 , 以此作为判断 , 可以插入一段代码实现发送邮件的功能 。
注意msg中链接的编写:
用户在收到邮箱之后点击该链接 , 会向userServlet发送一个请求 。
而这个请求是我们需要接受的 , 所以路径填写userServlet , 同时携带两个参数:
methodName:active业务 , UserServlet中要有个方法和其对应 。
code:当前用户的code 。
4注册页面测试
将发送邮件代码补全后做一个测试 , 确定是否能够发送邮件 。
Java项目实战第5天:邮箱激活业务
文章图片
在用户注册页面 , 注册成功之后 , 我设定的服务器邮箱会给用户填的邮箱发送激活邮件 。
三、邮箱激活业务实现
用户点击激活邮件中的链接后 , 会发送请求到UserServlet , 也就是上述我们自己填写的路径 。
1.激活业务实现之web层
在UserServlet中设定一个方法来接受该请求 , 方法名即为请求中的参数active 。
Java项目实战第5天:邮箱激活业务
文章图片
①获取请求中携带的数据
有一个参数code , 根据该参数在数据库中找到对应的用户并修改其激活状态 。
②激活成功
如果激活成功 , 重定向到登录页面 , 在此之前先响应一个提示信息提醒用户 。
response.setHeader()即可实现页面重定向 , 其有两个参数:
refresh:刷新的意思 。
3;login.html:3即表示为定时3秒再刷新 , 中间使用分号隔开 , login.html即为重新跳转的页面 。
③激活失败
【Java项目实战第5天:邮箱激活业务】原理同上 , 修改提示信息提醒用户重新注册 , 同时跳转的页面是注册页面 。
3激活业务实现之service和dao层
Java项目实战第5天:邮箱激活业务
文章图片
激活业务本身没有涉及到多少业务逻辑 , 所以代码编写并不多 。
其中对数据库的操作时修改操作 , 所以使用template的update方法 。
以上就是对于邮箱激活业务的实现:
用户激活成功 , 就会跳转登录页面 。
用户激活失败 , 就会跳转注册页面 , 测试阶段一般激活失败可能就是自己编写的代码有问题 。
最后
谢谢你的观看 。
如果可以的话 , 麻烦帮忙点个赞 , 谢谢你 。


    推荐阅读