java实现邮箱激活注册账号思路

需要掌握的知识点
  1. 会创建一个简单的java web项目——jsp+servlet
  2. 需要会使用JAVA Mail或者使用common-email发送邮件
  3. 会使用java进行数据库的操作
  4. 了解前后端的数据交互
前期准备
  1. qq邮箱开通POP3/SMTP服务
    第一步:
    在这里插入图片描述

第二步:
在这里插入图片描述
2. 下载所需的jar包
jar包下载地址
链接:https://pan.baidu.com/s/1e-WFVjeZuAPLe1Eo7LA2cw
提取码:njds

思路
  1. 数据库中存储用户是否激活的状态和激活时系统随机生成的校验码
    状态:当状态值为1时,处于激活状态,当状态为0时,处于未激活状态
    校验码:由系统随机生成的一串字符串,在激活时检查是否是通过发送给用户的邮件激活的
  2. 用java实现发送邮件,邮件包含一个超链接
代码思路

这是注册页面,输入信息点击注册,发起一个post请求,请求到http:localhost:8080/register
在这里插入图片描述

接受注册请求的servlet

@WebServlet("/register")
public class Register extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       //获取从页面发送过来的数据
       //系统生成一串随机字符串
       //将用户信息保存到数据库中,包括状态(状态为0,表示未激活)和系统生成一串随机字符串
        //向用户发送一封邮件
        EmailUtils.sendAccountActivateEmail(user);
    }
}

发送邮件内容的思路

//可以使用JAVA Mail或者使用common-email发送邮件,建议使用common-email发送邮件,代码比较简洁,需要使用的jar包在准备中有
public class EmailUtils {

    private static final String FROM = "要发送邮件的邮箱,这个例子是qq邮箱";

    public static void sendAccountActivateEmail(User user) {
    	//内容可以包含一个链接,该链接主要用来发送一个请求,用来激活账户,即把数据库中账户的状态设为1
		//例如链接可以长这样:<a href="http://localhost:8080/activateServlet?id=73742&checkCode=b9e8436a7599b89b6493feac9ba223e9">点击激活账号</a>
		//这时候tomcat服务器别关掉了
    }
}



激活账户的servelt


@WebServlet("/activateServlet")
public class ActivateServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取id的值和checkCode的值
        //id是存储在数据库中账号的主键,通过id找出数据库中的账户注册时存储的一串随机字符串
        //checkCode:与数据库中一串随机字符串作比较,如果通过验证,将数据库中的状态设为1, 如果没有通过验证,激活失败
        //checkCode为了保密性可以进行一些加密,例如md5
    }
}

总而言之,java实现邮箱激活并不难,只要会使用JAVA Mail或common-email发送邮件就可以了。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值