先设计数据库表

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邮箱注册账号和激活相关推荐

  1. JavaWeb邮箱注册激活账号

    JavaWeb邮箱注册激活账号 邮箱工具类MailUtil 用法 注意事项 激活码工具类UuidUtil 用法 邮箱工具类MailUtil /*** 发邮件工具类*/ public final cla ...

  2. 实现邮箱注册账号并验证邮箱

    两种实现思路:   1.注册完成后 该账号状态未激活,点击邮箱链接更改数据库状态激活账号.   2.填写完邮箱,设定激活链接失效时间,激活后可提交该表单页,完成注册. 两种方法大同小异 以1为例: 采 ...

  3. AppUploader教程:如何注册账号并激活AppUploader

    在上一篇文章中,我们介绍了如何下载和安装AppUploader.但是,在使用该工具之前,您需要注册一个账号并激活AppUploader.以下是详细的注册和激活步骤. 1.在Apple官网注册Apple ...

  4. 邮箱注册账号申请流程,邮箱快速注册

    如何能够快速注册一个邮箱账号呢,简单的快速注册账号流程分享免费邮箱首先,进入搜索引擎浏览器网址,敲上你注册的邮箱,如tom.com邮箱注册.页面会自动进入到官网啦~ 1 点击登陆框下方的"立 ...

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

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

  6. 【无标题】通过邮箱注册账号,邮箱返回注册信息

    编写前端代码 <form action="${pageContext.request.contextPath}/rg" method="post"> ...

  7. 发送邮件(注册用户并激活邮箱)

    发送邮件(注册用户并激活邮箱) 注册用户 并激活邮箱 的逻辑 1 获得用户数据 2 验证 非空.格式 3 验证 图形验证码 4 判断 用户是否存在,需要不存在 5 判断 邮箱是否已激活使用,需要未激活 ...

  8. 企业邮箱注册申请流程,企业邮箱怎么注册账号?

    企业邮箱注册流程和个人邮箱是有区别的,企业邮箱注册有定制功能,需人工服务,个人邮箱注册账号线上注册即可.TOM企业邮箱注册10分钟即可开通,有的人对企业邮箱的了解仅限于收发邮件,其实不然.下面会为大家 ...

  9. 企业邮箱怎么注册账号?忘记邮箱密码怎么修改密码?

    企业邮箱怎么注册账号?一个专业体面的邮箱,可以帮助你在收件人心中树立一个不错的个人品牌形象,比如TOM企业邮箱:而你的邮件也因此受到更多的关注,客户沟通上也更加通畅.随着即时通讯的发展,像微信.QQ以 ...

  10. 注册账号(邮箱验证)

    邮箱注册账号 第一步创建邮箱工具类去想创建账号的邮箱发送验证码 @Component public class MailUtil {// 发件人的邮箱账号public static String se ...

最新文章

  1. LeetCode简单题之汇总区间
  2. 《ANSYS 14.0超级学习手册》一第2章 高级应用的基石——APDL
  3. 为师不以学为大,不如以死谢天下
  4. python 非法字符处理
  5. AI:2020年6月24日北京智源大会演讲分享之机器学习前沿青年科学家专题论坛——10:40-11:10金驰《Near-Optimal Reinforcement Learning with Sel》
  6. 需求获取安排计划书_创业型公司商业计划书PPT怎么写?才是投资人最想看的,免费领取...
  7. 字符串的转换相关方法
  8. 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----其他(攻击方式)篇
  9. C#中文件及文件夾的遍历
  10. python in memory_使用 in_memory 工作空间的注意事项
  11. MTKI 驱动(57)---音频参数含义
  12. Unity 中 Png转Texture2D再转Sprite
  13. HDOJ 3480 Division
  14. 支持HTML5的浏览器
  15. 罗马数字 java_Java算法练习——整数转罗马数字
  16. 【VBA研究】关于工作表单元格复制粘贴的语句
  17. python统计元音字母出现的次数,python统计元音字母个数 python输出元音字母
  18. 紫光扫描仪ocr_清华紫光扫描仪的安装教程及使用方法
  19. powerdesigner16 license key
  20. 微信小程序生成携带参数的小程序码

热门文章

  1. 【Python表白小程序】表白神器——赶紧收藏起来~
  2. P3324 [SDOI2015]星际战争二分答案+网络流
  3. H3C防火墙基础配置1-登录配置、安全域配置
  4. SSM框架小项目 ACM周总结管理系统 V1.1 开源
  5. 几种常见的光纤接头(ST,SC,LC,FC)
  6. 基于51的LCD1602计算器
  7. 精通正则表达式学习记录 第二章 入门示例扩展
  8. DruidDataSource - abandon connection, owner thread: 错误原因
  9. 泰勒成立的基本原理(转载)
  10. 4pm 方法操datagrid