项目中qq邮件激活账号如何实现

qq邮件激活账号功能展示:

1.注册页面:

注册成功页面:

查看邮箱:

点击激活后:

qq邮件激活账号实现过程:

第一步在项目的pom.xml导入mail对应的maven依赖:

        <!-- https://mvnrepository.com/artifact/javax.mail/mail --><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version></dependency>

第二步创建MailUtils工具类:


public class MailUtils {public static void sendMail(String email, String emailMsg)throws AddressException, MessagingException {//定义Properties对象Properties props = new Properties();//设置邮件传输协议为SMTPprops.setProperty("mail.transport.protocol", "SMTP");//设置邮件服务器主机名props.setProperty("mail.host", "smtp.qq.com");//邮件服务器验证props.setProperty("mail.smtp.auth", "true");//定义验证信息Authenticator auth = new Authenticator() {public PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication("xxxxx583301@qq.com", "xxxxxxlxnjghgfaj");}};//创建会话,和邮件服务器的会话Session session = Session.getInstance(props, auth);//发送邮件的相关信息XMessage message = new MimeMessage(session);//设置发送方message.setFrom(new InternetAddress("xxxxxx83301@qq.com"));//设置接收方message.setRecipient(RecipientType.TO, new InternetAddress(email));//设置邮件的主题message.setSubject("用户激活");// message.setText("这是一封激活邮件,请<a href='#'>点击</a>");//设置编码方式message.setContent(emailMsg, "text/html;charset=utf-8");Transport.send(message);}
}

第三步就是在项目中怎么使用MailUtils类了

1.handler层:注册功能                                                 (网上书城项目)

这里是用户注册后从前端接受到完整User信息,并设置了激活码ActiveCode

    @RequestMapping("/register")public String register(User user, String checkCode, HttpSession session, HttpServletRequest request){user.setActiveCode(IdUtils.getUUID());String checkcode_session = (String) session.getAttribute("checkcode_session");//判断校验码是否输入正确if(checkcode_session.equals(checkCode)){int rows = userService.addUser(user,request);if (rows>0){return "redirect:/client/registersuccess.jsp";}else {request.setAttribute("fail","新用户注册失败,请重试!");return "/client/register.jsp";}}else {request.setAttribute("check_error","校验码错误,请重新输入!");return "/client/register.jsp";}}

2.Service层:

这里向用户邮箱发送了邮件+激活码,因为激活码是唯一的可以找到需要激活的账号,并创建了一个未激活的账号(return)

    @Overridepublic int addUser(User user, HttpServletRequest request) {//http://localhost:8080/client/user/register  /*"+request.getContextPath()+"*/String emailMsg = "感谢你注册网上书城,请点击" +"<a href='http://localhost:8080/" + request.getContextPath() + "/client/user/activeUser?activeCode=" + user.getActiveCode() + "'>激活</a>后使用!";try {MailUtils.sendMail(user.getEmail(), emailMsg);} catch (MessagingException e) {e.printStackTrace();}return userDao.insertUser(user);}

3.点击激活后再次调转到Handler层

    //用户激活@RequestMapping("/activeUser")public String activeUser(String activeCode){System.out.println("激活码:"+activeCode);int rows = userService.activeUser(activeCode);if (rows>0){return "redirect:/client/activesuccess.jsp";}else {return "redirect:/client/activeFail.jsp";}}

然后Service层 以及Dao层的XML

    <update id="activeUser">update user set state = 1 where activeCode = #{activeCode}</update>

项目中qq邮件激活账号如何实现相关推荐

  1. Android项目中集成华为账号登录、支付

    最近项目中集成了华为账号登录与支付的功能,把踩过的坑和过程记录下来. 先看下支付效果图: 支付价格0.01请忽略,因为这是为了测试用的. 刚开始接到这个项目的时候我很奇怪,为什么要集成华为支付呢,原有 ...

  2. 微信小程序激活账号时,提示“此帐号已激活,请使用帐号密码直接登录”

    最近准备研究下微信小程序,先去申请个小程序账号.于是乎,在通过邮件中的链接激活账号时,遇到了这个问题. 解决方法 你没看错,就是字面的意思,去登录页,点击使用账号登录,千万不要扫码登录. 用之前注册的 ...

  3. 如何在android手机项目中加入广告

    对于很多个人或者小组android程序开发人员来说,他们更愿意选择Free来让他们的产品更加吸引人.而与此同时赚钱的需求,让们寻找第三方广告商的介入,AdMob就是最近蹿红的,手持移动设备广告中介商. ...

  4. Python批量发送QQ邮件

    哇奥,fantastic baby-今天 老Amy 开始薅头发~还有啥宝贝没给大家亮出来- 就开始看到繁忙的 hr ,我设身处地的想,如果行政部门需要批量的给不同人员发送不同信息的邮件~是怎么来做的呢 ...

  5. Java 实现向邮箱发送邮件及点击邮件激活网页打不开等问题,常用作注册账号及激活账号(测试为qq邮箱)

    service public void register(User user) throws UserException{ try { //往数据库添加用户 userDao.addUser(user) ...

  6. python进行邮件发送以及django中利用邮件注册激活功能

    协议 SMTP协议 SMTP的全称是"Simple Mail Transfer Protocol",即简单邮件传输协议.它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮 ...

  7. Java中利用qqemai发送QQ邮件

    最近自己了解下Java中利用mai发送QQ邮件 1.QQ邮箱设置 1.1 进去QQ邮箱-->设置-->账号-->进行设置如下图 以下源码 package test; import j ...

  8. 美多商城项目之用户登录:账号登录、QQ登录

    一.账号登录 1.1 用户名登录 1. 用户名登录逻辑分析 2. 用户名登录接口设计 1.请求方式 选项 方案 请求方法 POST 请求地址 /login/ 2.请求参数:表单 参数名 类型 是否必传 ...

  9. 如何使用开源项目申请jetbrains激活账号01

    一.首先要注册一个github账号,然后你自己的仓库中维护和更新有超过三个月的项目. 这个是我的项目超过了三个月的,我就是那这个申请了jerbrain激活账号. 1.1在申请前我们要把自己的邮箱公开. ...

最新文章

  1. .net c# 正则表达式 平衡组/递归匹配
  2. 街电与搜电网络营销外包合并,怪兽充电终上市共享充电市场将迎来新变化
  3. 【python基础】list操作相关:扩充、条件查找【IndexError: list assignment index out of range】...
  4. python创建与遍历List二维列表
  5. wpa_supplicant无线网络配置
  6. 苹果智能音箱HomePod跳票了,上市日期推迟到明年
  7. Visual Assist X AutoText修改说明
  8. react-router 低版本的路由API
  9. 错误:created a ThreadLocal with key of type ……but failed to remove it when the web application was sto
  10. 尼尔森十大交互设计原则
  11. 服务器域名解析问题,域名解析出现错误的几种情况,以及解决方法
  12. 第十五届全国大学生智能汽车竞赛安徽赛区获奖名单
  13. 矩形排样程序matlab,矩形优化排样
  14. 人人商城之导出excel表
  15. 交换字符使得字符串相同
  16. 什么是 Skype?
  17. 14、系统架构师指南 - 软件项目角色指南系列文章
  18. 饥荒联机版Centos下自动更新教程
  19. 互联网晚报 | 11/21 星期一 | 31省平均工资发布;​九城不排除重新接盘暴雪魔兽世界;iPhone14Pro发货再次延期...
  20. 操作系统实验六、系统内存使用统计

热门文章

  1. [Minecraft] 从零开始搭建4位CPU(1)
  2. 斐波那契数列C语言实现
  3. 你自己觉得行,你就一定行
  4. 防弹车难成护身符 一个富人对“公平”的感悟
  5. LOAM学习-代码解析(三)特征点运动估计 laserOdometry
  6. 蓝桥杯14届模拟赛第一期题解
  7. Oracle数据库常用函数总结
  8. 一辈子这么长,你得找个相爱的人在一起。
  9. TypeScript的学习笔记之一
  10. 将linux界面切换一屏幕,Linux如何从图形界面切换到命令界面