java web 邮件发送全过程(链接中携带的用户信息经过加密处理)

本次以密码找回使用邮箱方式找回为例

步骤:可能相互调用有点乱,但是我写的很清楚,应该不难看懂

1、获取用户名和邮箱,写好邮件内容,发送邮件:

2、上一步调用的邮件发送方法,在这里实现

3、数据加密,第一步中用到了加密。第四步用到了解密(这里都是被调用的方法):

4、由于发送的链接定位到是重置页面,也就是他给你随机分配一个新密码,你可以拿着这个新密码重新登陆,然后去修改,这里主要是讲如何将获得加密数据解密,并返回随机密码

邮件发送需要两个jar包要引进,保存在百度云资源里,连接如下:

jar包 提取码:cbsu

1、获取用户名和邮箱,写好邮件内容,发送邮件:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("application/json;charset=utf-8");
        String name=request.getParameter("username");
        String email=request.getParameter("email");
        Map<String, Object> res = new HashMap<>();
        String error=null;
        if ("".equals(email)) {
            error="邮箱不能为空";
        }
       else {
            //我的用户类User
            User user= null;
            try {
                //在我的用户数据库表中通过名字查找用户是否存在
                user = UserDao.getByName(name);
                System.out.println(user);
                if (user == null) {
                    error="该用户不存在";
                }else
                {
                    //如果用户存在,还要查看对应用户的email是否一致
                    String emails=user.getEmail();
                    if(!emails.equals(email)){
                         error="邮箱不正确";
                    }else{
                        //正式编写邮件内容
                        //计算token
                        String token=String.format("%s,%s,%s,%s",user.getUid(),user.getUsername(),user.getEmail(),System.currentTimeMillis());
                        //加密,这里调用下面的SecureUtils类中的加密算法
                        token = SecureUtils._3DES_encode(emailKEY, token.getBytes());
                        //计算url,先获取你找回密码的URL地址,再加上你的加密token(为了防止有人冒充你的身份信息)
                        String url=request.getRequestURL().toString();
                        url=url.replace(request.getRequestURI(),"");
                   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值