javaweb邮箱注册账号和激活
先设计数据库表
active代表是否激活,如果没有去邮箱点击链接,active为0,点了就更新active字段为1
需要的jar包依赖
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.5<ersion>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4<ersion>
</dependency>
前台代码
oup.οnclick=function(){var username=document.getElementById('username').value;var password=document.getElementById('password').value;var password1=document.getElementById('password1').value;var email=document.getElementById('email').value; //先对输入的邮箱格式进行判断if(email == ''){alert("请输入您的邮箱");return;}else if(email != "") {var reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;isok= reg.test(email );if (!isok) {alert("邮箱格式不正确,请重新输入!");return false;}};$.ajax({url : "User/user.do",type : "post",data : {"username":username,"password":password,"password1":password1,"email":email},async : false,success : function(data) {if(data=='No'){alert("注册失败");}else {alert("注册成功");window.location.href="login(1).html";}}});};
后台代码Usercontroller
@RequestMapping(value = "/user.do") / @ResponseBody public String regist(HttpServletRequest request, User user, Model model, ModelAndView modelandview) {String password = request.getParameter("password");String password1 = request.getParameter("password1");String username = request.getParameter("username");String email = request.getParameter("email");String active = "0";User user1 = userService.login(username, password);if (user1 != null || !password.equals(password1)) {//我写的账户是否存在的判断。 可以自行删除System.out.println("No");return "No";} else {try{sendEmail a=new sendEmail();a.sendHtmlEmail(email);userService.regist(username, password, email, active);//账号存入数据库,但是active字段 为0}catch (Exception e){System.out.println("用户注册:" + user.getUsername() + user.getPassword());return "Yes";}}//注册成功后跳转success.jsp页面return "";}
sendEmail类(三种邮箱类型),我用的是qq邮箱来激活,也可以用163等邮箱,道理差不多
package controller;import org.apache.commons.mail.DefaultAuthenticator; import org.apache.commons.mail.Email; import org.apache.commons.mail.EmailAttachment; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.HtmlEmail; import org.apache.commons.mail.MultiPartEmail; import org.apache.commons.mail.SimpleEmail;import java.io.File; import java.net.URL;public class sendEmail {/*我们使用普通邮件来测试public static void main(String[] args) {sendHtmlEmail();//发送普通邮件// sendHtmlEmail();//发送html5邮件// sendAttachmentsEmail();//发送带附件邮件}*/private static void sendSimpleEmail() {Email email=new SimpleEmail();email.setHostName("smtp.qq.com");email.setSmtpPort(465);email.setAuthenticator(new DefaultAuthenticator("XXXXX","XXXXX"));//发送人的邮箱和授权码email.setSSLOnConnect(true);try {email.setFrom("XXXXX");//发送人的邮箱email.setSubject("测试主题");//发送的主题email.setMsg("测试内容");//发送的内容email.addTo("XXXXXX");//接受人的邮箱email.send();System.out.println("发送simple邮件成功!!!");} catch (EmailException e) {e.printStackTrace();}}public static void sendHtmlEmail(String mail) {HtmlEmail email = new HtmlEmail();email.setHostName("smtp.qq.com");email.setSmtpPort(465);email.setAuthenticator(new DefaultAuthenticator("xxxxxx@qq.com","xxxxxx"));//发送人的邮箱和授权码,email.setSSLOnConnect(true);try {email.setFrom("xxxxxx","hwj");email.setSubject("HTML5格式邮箱");String activeUrl="http://localhost:8080/xuenian/User/activemail.do?mail="+mail; //发送一个激活链接来实现对数据库的active字段更新为1,mail就是你前台注册的mail。email.setHtmlMsg("点击链接激活账户"+activeUrl);email.setTextMsg("测试内容");email.addTo(mail, "hzk");email.send();System.out.println("发送HTML邮件成功!!");} catch (EmailException e) {e.printStackTrace();}}private static void sendAttachmentsEmail() {MultiPartEmail email = new MultiPartEmail();email.setHostName("smtp.qq.com");email.setSmtpPort(465);email.setAuthenticator(new DefaultAuthenticator("xxxx","xxxxx"));//发送人的邮箱和授权码email.setSSLOnConnect(true);try {EmailAttachment attachment = new EmailAttachment();attachment.setURL(new URL("https://www.xys1118.com/images/topbg.jpg"));attachment.setDisposition(EmailAttachment.ATTACHMENT);attachment.setDescription("xys.jpg");attachment.setName("xys.jpg");email.attach(attachment);email.attach(new File("C:/Users/admin/Desktop/测试/1/1.txt"));email.setFrom("xxxxx@qq.com","hqs");email.setSubject("HTML5带有附件邮箱");email.setMsg("测试附件邮件内容");email.addTo("xxxxx@qq.com", "hzk");email.send();System.out.println("发送HTML邮件成功!!");} catch (Exception e) {e.printStackTrace();}} }
邮箱授权码获取(qq邮箱为例子)
在你的qq邮箱的设置的账户里。
开启前两个,会有一个授权码给你,就是你的授权码。通过你的邮箱来发出激活邮件给别人的邮箱。
activemail.do(激活链接的处理后台代码)
//验证邮箱 @RequestMapping(value = "/activemail.do") public ModelAndView activemail(User user,HttpServletRequest request, Model model) {String email = request.getParameter("mail");System.out.println(email);String active = "1";//1.根据激活码从数据库查出用户信息ModelAndView mv = new ModelAndView("redirect:/success.html");//自己写一个success页面代表激活成功ModelAndView mv1 = new ModelAndView("redirect:/fail.html");//自己写一个success页面代表激活失败user = userService.findemail(email);//2.如果能查出来那么我们就将这个用户的激活码状态变为激活(active为1)if (user != null) {userService.updataemail(active, email);return mv;} else {System.out.println("激活失败!");return mv1;} }
代码正确的话会有邮件 ,点击即可激活
javaweb邮箱注册账号和激活相关推荐
- JavaWeb邮箱注册激活账号
JavaWeb邮箱注册激活账号 邮箱工具类MailUtil 用法 注意事项 激活码工具类UuidUtil 用法 邮箱工具类MailUtil /*** 发邮件工具类*/ public final cla ...
- 实现邮箱注册账号并验证邮箱
两种实现思路: 1.注册完成后 该账号状态未激活,点击邮箱链接更改数据库状态激活账号. 2.填写完邮箱,设定激活链接失效时间,激活后可提交该表单页,完成注册. 两种方法大同小异 以1为例: 采 ...
- AppUploader教程:如何注册账号并激活AppUploader
在上一篇文章中,我们介绍了如何下载和安装AppUploader.但是,在使用该工具之前,您需要注册一个账号并激活AppUploader.以下是详细的注册和激活步骤. 1.在Apple官网注册Apple ...
- 邮箱注册账号申请流程,邮箱快速注册
如何能够快速注册一个邮箱账号呢,简单的快速注册账号流程分享免费邮箱首先,进入搜索引擎浏览器网址,敲上你注册的邮箱,如tom.com邮箱注册.页面会自动进入到官网啦~ 1 点击登陆框下方的"立 ...
- Java 实现向邮箱发送邮件及点击邮件激活网页打不开等问题,常用作注册账号及激活账号(测试为qq邮箱)
service public void register(User user) throws UserException{ try { //往数据库添加用户 userDao.addUser(user) ...
- 【无标题】通过邮箱注册账号,邮箱返回注册信息
编写前端代码 <form action="${pageContext.request.contextPath}/rg" method="post"> ...
- 发送邮件(注册用户并激活邮箱)
发送邮件(注册用户并激活邮箱) 注册用户 并激活邮箱 的逻辑 1 获得用户数据 2 验证 非空.格式 3 验证 图形验证码 4 判断 用户是否存在,需要不存在 5 判断 邮箱是否已激活使用,需要未激活 ...
- 企业邮箱注册申请流程,企业邮箱怎么注册账号?
企业邮箱注册流程和个人邮箱是有区别的,企业邮箱注册有定制功能,需人工服务,个人邮箱注册账号线上注册即可.TOM企业邮箱注册10分钟即可开通,有的人对企业邮箱的了解仅限于收发邮件,其实不然.下面会为大家 ...
- 企业邮箱怎么注册账号?忘记邮箱密码怎么修改密码?
企业邮箱怎么注册账号?一个专业体面的邮箱,可以帮助你在收件人心中树立一个不错的个人品牌形象,比如TOM企业邮箱:而你的邮件也因此受到更多的关注,客户沟通上也更加通畅.随着即时通讯的发展,像微信.QQ以 ...
- 注册账号(邮箱验证)
邮箱注册账号 第一步创建邮箱工具类去想创建账号的邮箱发送验证码 @Component public class MailUtil {// 发件人的邮箱账号public static String se ...
最新文章
- LeetCode简单题之汇总区间
- 《ANSYS 14.0超级学习手册》一第2章 高级应用的基石——APDL
- 为师不以学为大,不如以死谢天下
- python 非法字符处理
- AI:2020年6月24日北京智源大会演讲分享之机器学习前沿青年科学家专题论坛——10:40-11:10金驰《Near-Optimal Reinforcement Learning with Sel》
- 需求获取安排计划书_创业型公司商业计划书PPT怎么写?才是投资人最想看的,免费领取...
- 字符串的转换相关方法
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----其他(攻击方式)篇
- C#中文件及文件夾的遍历
- python in memory_使用 in_memory 工作空间的注意事项
- MTKI 驱动(57)---音频参数含义
- Unity 中 Png转Texture2D再转Sprite
- HDOJ 3480 Division
- 支持HTML5的浏览器
- 罗马数字 java_Java算法练习——整数转罗马数字
- 【VBA研究】关于工作表单元格复制粘贴的语句
- python统计元音字母出现的次数,python统计元音字母个数 python输出元音字母
- 紫光扫描仪ocr_清华紫光扫描仪的安装教程及使用方法
- powerdesigner16 license key
- 微信小程序生成携带参数的小程序码
热门文章
- 【Python表白小程序】表白神器——赶紧收藏起来~
- P3324 [SDOI2015]星际战争二分答案+网络流
- H3C防火墙基础配置1-登录配置、安全域配置
- SSM框架小项目 ACM周总结管理系统 V1.1 开源
- 几种常见的光纤接头(ST,SC,LC,FC)
- 基于51的LCD1602计算器
- 精通正则表达式学习记录 第二章 入门示例扩展
- DruidDataSource - abandon connection, owner thread: 错误原因
- 泰勒成立的基本原理(转载)
- 4pm 方法操datagrid