项目中qq邮件激活账号如何实现
项目中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邮件激活账号如何实现相关推荐
- Android项目中集成华为账号登录、支付
最近项目中集成了华为账号登录与支付的功能,把踩过的坑和过程记录下来. 先看下支付效果图: 支付价格0.01请忽略,因为这是为了测试用的. 刚开始接到这个项目的时候我很奇怪,为什么要集成华为支付呢,原有 ...
- 微信小程序激活账号时,提示“此帐号已激活,请使用帐号密码直接登录”
最近准备研究下微信小程序,先去申请个小程序账号.于是乎,在通过邮件中的链接激活账号时,遇到了这个问题. 解决方法 你没看错,就是字面的意思,去登录页,点击使用账号登录,千万不要扫码登录. 用之前注册的 ...
- 如何在android手机项目中加入广告
对于很多个人或者小组android程序开发人员来说,他们更愿意选择Free来让他们的产品更加吸引人.而与此同时赚钱的需求,让们寻找第三方广告商的介入,AdMob就是最近蹿红的,手持移动设备广告中介商. ...
- Python批量发送QQ邮件
哇奥,fantastic baby-今天 老Amy 开始薅头发~还有啥宝贝没给大家亮出来- 就开始看到繁忙的 hr ,我设身处地的想,如果行政部门需要批量的给不同人员发送不同信息的邮件~是怎么来做的呢 ...
- Java 实现向邮箱发送邮件及点击邮件激活网页打不开等问题,常用作注册账号及激活账号(测试为qq邮箱)
service public void register(User user) throws UserException{ try { //往数据库添加用户 userDao.addUser(user) ...
- python进行邮件发送以及django中利用邮件注册激活功能
协议 SMTP协议 SMTP的全称是"Simple Mail Transfer Protocol",即简单邮件传输协议.它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮 ...
- Java中利用qqemai发送QQ邮件
最近自己了解下Java中利用mai发送QQ邮件 1.QQ邮箱设置 1.1 进去QQ邮箱-->设置-->账号-->进行设置如下图 以下源码 package test; import j ...
- 美多商城项目之用户登录:账号登录、QQ登录
一.账号登录 1.1 用户名登录 1. 用户名登录逻辑分析 2. 用户名登录接口设计 1.请求方式 选项 方案 请求方法 POST 请求地址 /login/ 2.请求参数:表单 参数名 类型 是否必传 ...
- 如何使用开源项目申请jetbrains激活账号01
一.首先要注册一个github账号,然后你自己的仓库中维护和更新有超过三个月的项目. 这个是我的项目超过了三个月的,我就是那这个申请了jerbrain激活账号. 1.1在申请前我们要把自己的邮箱公开. ...
最新文章
- .net c# 正则表达式 平衡组/递归匹配
- 街电与搜电网络营销外包合并,怪兽充电终上市共享充电市场将迎来新变化
- 【python基础】list操作相关:扩充、条件查找【IndexError: list assignment index out of range】...
- python创建与遍历List二维列表
- wpa_supplicant无线网络配置
- 苹果智能音箱HomePod跳票了,上市日期推迟到明年
- Visual Assist X AutoText修改说明
- react-router 低版本的路由API
- 错误:created a ThreadLocal with key of type ……but failed to remove it when the web application was sto
- 尼尔森十大交互设计原则
- 服务器域名解析问题,域名解析出现错误的几种情况,以及解决方法
- 第十五届全国大学生智能汽车竞赛安徽赛区获奖名单
- 矩形排样程序matlab,矩形优化排样
- 人人商城之导出excel表
- 交换字符使得字符串相同
- 什么是 Skype?
- 14、系统架构师指南 - 软件项目角色指南系列文章
- 饥荒联机版Centos下自动更新教程
- 互联网晚报 | 11/21 星期一 | 31省平均工资发布;​九城不排除重新接盘暴雪魔兽世界;iPhone14Pro发货再次延期...
- 操作系统实验六、系统内存使用统计