【JavaWeb】104:邮箱激活业务

  • 时间:2021-03-20 20:23 作者:刘小爱 来源: 阅读:574
  • 扫一扫,手机访问
摘要:今天是刘小爱自学Java的第104天。感谢你的观看,谢谢你。话不多说,开始今天的学习:image注册某个网站一般都需要邮箱激活:注册后,该网站会给你填写的邮箱发送一条激活信息,点击对应的链接就可完成激活。激活成功后,即可以正常登录该网站了。而该业务即可以通过Java代码实现:关于邮件激活这一块,老实

今天是刘小爱自学Java的第104天。

感谢你的观看,谢谢你。

话不多说,开始今天的学习:

image

注册某个网站一般都需要邮箱激活:

注册后,该网站会给你填写的邮箱发送一条激活信息,点击对应的链接就可完成激活。

激活成功后,即可以正常登录该网站了。

而该业务即可以通过Java代码实现:

关于邮件激活这一块,老实说原本不打算专门花一晚上时间学习的。

毕竟这种类型的知识点需要用到的时候相对而言很少,就算遇到了通过网络也能处理。

后来我想了想,我能够通过网络查询到别人的教程,那为何不能让别人查询我的笔记呢?

所以还是花了一个晚上的时间来学习,同时也方便自己以后遇到该需求后查看。

一、Java发送邮箱

既然是发送邮箱,首先需要一个固定的发送邮箱地址,而这个邮箱要开通POP3服务。

image

我这边使用的是网易提供的邮箱,通过邮箱的设置可以开启该服务。

开启服务后,需要通过手机号验证;验证成功会取得一个受权码,这个需要记下来。

有了这个受权码之后,即可以通过Java代码发送邮箱了,发件人也就是该邮箱。

当然发送邮件的技术挺多的,我这边使用的是apache提供的commons-mail。

导入该依赖后即可以编写代码了。

代码编写如下:

image

①创立htmlEamil对象

apache-mail中是使用HtmlEmail这个类来操作邮件的。

②配置服务器参数

setHostName:设定服务器地址。

setAuthentication:翻译过来就是认证的意思,所以需要输入邮箱名和受权码。

③设置发件人和收件人

setCharset:设定编码格式为“gb2312”,国家制定的一套标准,gb即国标的拼音缩写。

setFrom:这个是设定发件人,也就是上述获取受权码的那个邮箱。

setaddTo:这个是设定收件人,也就是谁注册就是谁的邮箱,动态获取,我这边测试就先用我自己的另一个邮箱代替。

④设置邮件的主题和正文

setSubject:发给客户的邮件标题,一般都是“XXX网站激活邮件”

setMsg:发送正文,一般都是“恭喜你,注册成功!请点击链接激活”,再附带一个链接。

我这边先就随意填一个链接作为测试。

⑤发送邮件

send方法发送邮件,见名知意。

二、发送邮件及测试

1配置文件封装

和jdbc一样,可以将上述的代码封装到一个工具类中,并且关于服务器的配置信息也封装到一个配置文件中。

image

①通过类加载器加载配置文件

MailUtil.class.getClassLoader():获取MailUtil的类加载器。

getResourceAsStream():翻译就是以流的方式获取源文件,参数为配置文件路径。

这样就获取了该配置文件对应的流。

②获取配置文件中的各个属性

load():将对应的流加载进properties。

getProperty():获取参数对应的值。

2发送邮件方法封装

将发邮件代码封装进一个方法中,通过配置文件,使代码更具备拓展性。

image

在自己设置的工具类MailUtil中创立一个静态方法sendEamil():

将发送邮件的代码封装进该方法中,需要发送邮件时用MailUtil调用sendEamil方法就可。

其中sendEamil方法有两个参数:

  • userEamil:客户注册时填写的邮箱,也就是收件人的邮箱。

  • msg:需要发送给客户的邮件信息。

3发送邮件代码补全

那什么时候发送邮件呢?

当客户激活成功后就可发送邮件:

image

在UserServlet中,昨天实现了注册功能,registerFlag作为结果响应给前台。

其中假如为true表示注册成功,以此作为判断,可以插入一段代码实现发送邮件的功能。

注意msg中链接的编写:

客户在收到邮箱之后点击该链接,会向userServlet发送一个请求。

而这个请求是我们需要接受的,所以路径填写userServlet,同时携带两个参数:

  • methodName:active业务,UserServlet中要有个方法和其对应。

  • code:当前客户的code。

4注册页面测试

将发送邮件代码补全后做一个测试,确定能否能够发送邮件。

image

在客户注册页面,注册成功之后,我设定的服务器邮箱会给客户填的邮箱发送激活邮件。

三、邮箱激活业务实现

客户点击激活邮件中的链接后,会发送请求到UserServlet,也就是上述我们自己填写的路径。

1.激活业务实现之web层

在UserServlet中设定一个方法来接受该请求,方法名即为请求中的参数active。

image

①获取请求中携带的数据

有一个参数code,根据该参数在数据库中找到对应的客户并修改其激活状态。

②激活成功

假如激活成功,重定向到登录页面,在此之前先响应一个提醒信息提示客户。

response.setHeader()就可实现页面重定向,其有两个参数:

  • refresh:刷新的意思。

  • 3;login.html:3即表示为定时3秒再刷新,中间使用分号隔开,login.html即为重新跳转的页面。

③激活失败

原理同上,修改提醒信息提示客户重新注册,同时跳转的页面是注册页面。

3激活业务实现之service和dao层

image

激活业务本身没有涉及到多少业务逻辑,所以代码编写并不多。

其中对数据库的操作时修改操作,所以使用template的update方法。

以上就是对于邮箱激活业务的实现:

  • 客户激活成功,就会跳转登录页面。

  • 客户激活失败,就会跳转注册页面,测试阶段一般激活失败可能就是自己编写的代码有问题。

最后

谢谢你的观看。

假如可以的话,麻烦帮忙点个赞,谢谢你。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】2FA验证器 验证码如何登录(2024-04-01 20:18)
【系统环境|】怎么做才能建设好外贸网站?(2023-12-20 10:05)
【系统环境|数据库】 潮玩宇宙游戏道具收集方法(2023-12-12 16:13)
【系统环境|】遥遥领先!青否数字人直播系统5.0发布,支持真人接管实时驱动!(2023-10-12 17:31)
【系统环境|服务器应用】克隆自己的数字人形象需要几步?(2023-09-20 17:13)
【系统环境|】Tiktok登录教程(2023-02-13 14:17)
【系统环境|】ZORRO佐罗软件安装教程及一键新机使用方法详细简介(2023-02-10 21:56)
【系统环境|】阿里云 centos 云盘扩容命令(2023-01-10 16:35)
【系统环境|】补单系统搭建补单源码搭建(2022-05-18 11:35)
【系统环境|服务器应用】高端显卡再度登上热搜,竟然是因为“断崖式”的降价(2022-04-12 19:47)
手机二维码手机访问领取大礼包
返回顶部