所需jar:activation-1.1.1,commons-email-1.3.2,mail-1.4.7

/**
*
*/
package com.controller;
import java.util.Random;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.util.sendEmailUtil;
/**
*
* @ClassName: EmailCodeController
* @Description: 发送邮箱验证码
* @author Hacker_枫
* @date 2016年7月25日 上午10:08:21
*
*/
@Controller
@RequestMapping("/admin/email")
public class EmailCodeController extends BaseController{
@RequestMapping(value = "/emailCode", method=RequestMethod.GET)
public String emailCode(){
return "/admin/email/send";
}
/**
* 发送邮箱验证码
* @Title: sendEmailCode
* @param request
* @param response
* @param email
* @return
* @author Hacker_枫
* @since 2016年7月26日 V 1.0
*/
@RequestMapping(value = "/sendEmailCode", method = RequestMethod.POST)
@ResponseBody
public String sendEmailCode(HttpServletRequest request, HttpServletResponse response, String email){
//随机生成一个最大为999999的整数
int number = new Random().nextInt(999999);
//将生成数转换为字符串,不足6为左侧用0补全
String code = String.format("%06d", number);
//发送邮件的主题
String subject = "邮箱验证码";
//验证码的内容
String msg = "您的邮箱验证码是:" + code + ",有效期为三分钟,如非本人操作请忽略。本消息由张先生通过java代码编制而出,如有需要,请联系:18300247868!";
//发送邮件
boolean isOk=sendEmailUtil.sendEmail(email, msg ,subject);
if(isOk){
//保存在cookie
Cookie cookie = new Cookie("emailCode", code);
//设置cookie最大有效时间为180秒
cookie.setMaxAge(180);
//将cookie放在response里
response.addCookie(cookie);
return message(Type.success, "发送验证码成功,请登录邮箱查收!");
}
return message(Type.error, "发送验证码失败,请重试!");
}
/**
* 邮箱验证
* @Title: emailInsert
* @param request
* @param response
* @param email             邮箱
* @param emailCode         验证码
* @return
* @author Hacker_枫
* @since 2016年7月26日 V 1.0
*/
@RequestMapping(value = "saveEmail", method = RequestMethod.POST)
@ResponseBody
public String emailInsert(HttpServletRequest request,HttpServletResponse response, String email, String emailCode){
//定义变量
String code="";
//获取cookie中存放的值
Cookie [] cookie = request.getCookies();
//判断
if(StringUtils.isEmpty(email)){
return message(Type.error, "邮箱不能为空");
}else if(cookie.length<1){
return message(Type.error, "请先发送验证码");
}else if(StringUtils.isEmpty(cookie)){
return message(Type.error, "请填写验证码");
}
for(int i=0;i<% StringBuffer url = request.getRequestURL();
String base = url.delete(url.length() - request.getRequestURI().length(), url.length()).append(request.getServletContext().getContextPath()).toString();
request.setAttribute("base", base);
%>

发送邮箱验证码
邮箱:
验证码:
发送邮箱验证码
提交      

<script type="text/javascript" src="${base}/resource/js/jquery-1.6.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
//发送邮箱验证码
$("#sendEmailCode").click(function(){
if($("#email").val() != null && $("#email").val() != ""){
$.ajax({
type:"post",
dataType:"json",
url:"${base}/admin/email/sendEmailCode.do",
data:{email:$("#email").val()},
success:function(message){
if(message.type == "success"){
alert(message.content);
}else{
alert(message.content);
}
},
error:function(){
alert("系统繁忙,请稍后再试。");
}
});
}else{
alert("请填写您的邮箱地址");
}
});
$("#email_submit").click(function(){
$.ajax({
type:"post",
dataType:"json",
data:{
email:$("#email").val(),
emailCode:$("#emailCode").val()
},
url:"${base}/admin/email/saveEmail.do",
success:function(message){
if(message.type == "success"){
alert(message.content);
}else{
alert(message.content);
}
},
error:function(){
alert("系统繁忙,请稍后重试");
}
});
});
});
</script>
empty/**
* @sendEmail.java
* @com.util
* @Description:
*
* @author Hacker_枫
* @copyright  2016
* @version V
* @since 2016年7月25日
*/
package com.util;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
/**
* @ClassName: sendEmail
* @Description: 发送邮件
* @author Hacker_枫
* @date 2016年7月25日 上午11:52:45
*/
public class sendEmailUtil {
/**
* 发送邮件
* @Title: sendEmail
* @param receiverEmail         接收人邮箱
* @param msg                   发送的消息内容
* @return
* @author Hacker_枫
* @since 2016年7月26日 V 1.0
*/
public static boolean sendEmail(String receiverEmail, String msg, String subject){
//实例化一个html邮件
HtmlEmail email = new HtmlEmail();
try {
//设置为qq邮箱发送
email.setHostName("smtp.qq.com");
email.setSSL(true);
//设置SSL端口号为465(固定)
email.setSslSmtpPort("465");
//设置编码
email.setCharset("UTF-8");
//接收人邮箱
email.addTo(receiverEmail);
//发送人邮箱,昵称
email.setFrom("邮箱地址","昵称");
//设置发送人邮箱,及smtp密码
email.setAuthentication("邮箱地址", "smtp密码");
//邮件主题
email.setSubject(subject);
//邮件内容
email.setMsg(msg);
//发送邮件
email.send();
return true;
} catch (EmailException e) {
e.printStackTrace();
return false;
}
}
}

java 用验证码的形式验证邮箱相关推荐

  1. java生成验证码并进行验证

    一实现思路 使用BufferedImage用于在内存中存储生成的验证码图片 使用Graphics来进行验证码图片的绘制,并将绘制在图片上的验证码存放到session中用于后续验证 最后通过ImageI ...

  2. Java web发送邮箱验证码,并验证正确性

    Java web实现邮箱验证码功能 第一步.开启发件邮箱权限(以QQ邮箱为例) 第二步.生成验证码 第三步.发送邮件 第四步.web前端 第五步.servlet程序 先放一张程序的预览图 工程下载链接 ...

  3. java 验证邮箱_Java实现邮箱验证码

    声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. 邮箱验证码 一般能使用邮箱注册的账户,在进行登录.注册或忘记 ...

  4. laravel——实现Email形式的邮箱验证注册以及登陆功能

    正文 任务确认 具体操作 实现在laravel下呈现登陆注册按钮 实现点击登陆注册以后确保有相应的功能实现 测试是否能发送邮件 最终可以实现通过邮箱机制来注册 实现忘记密码重置的功能 任务确认 1.实 ...

  5. 邮箱验证码发送及验证

    邮箱验证码发送及验证 代码简化,有需求可以联系 成果展示图 //获取验证码 //接收图 配置 <dependency><groupId>org.springframework. ...

  6. 实现会员注册功能时如何通过qq邮箱获取验证码,从而验证登录? 详细步骤

    文章目录 会员注册_邮箱验证码功能实现: 前端操作: 后端操作: SpringBoot集成邮件发送验证码: 1.导入发送邮件jar包 2.配置 3.Controller层处理 4.service层注入 ...

  7. Java实现验证码验证功能

    Java如何实现验证码验证功能呢?日常生活中,验证码随处可见,他可以在一定程度上保护账号安全,那么他是怎么实现的呢? Java实现验证码验证功能其实非常简单:用到了一个Graphics类在画板上绘制字 ...

  8. Java与邮件系统交互之使用Socket验证邮箱是否存在

    最近遇到一个需求:需要验证用户填写的邮箱地址是否真实存在,是否可达.和普通的正则表达式不同,他要求尝试链接目标邮箱服务器并请求校验目标邮箱是否存在. 先来了解 DNS之MX记录 对于DNS不了解的,请 ...

  9. java 生成校验验证码_java生成验证码并进行验证

    一实现思路使用BufferedImage用于在内存中存储生成的验证码图片使用Graphics来进行验证码图片的绘制,并将绘制在图片上的验证码存放到session中用于后续验证 最后通过ImageIO将 ...

最新文章

  1. 机器学习:信用风险评估评分卡建模方法及原理
  2. bind merge r 和join_R语言中的数据合并函数(merge,cbind和rbind)的使用
  3. 前端菜鸡之路——网页上的图标
  4. xtrabackup备份mysql_配置xtrabackup备份mysql数据库
  5. JSP与Servelt的区别
  6. 【转】JMeter学习(十三)分布式部署
  7. Adaboost算法的学习笔记~
  8. python爬虫案例——csdn数据采集
  9. java scala中传递变长参数
  10. Could NOT find LibXml2 (missing: LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR)Call Stack
  11. plsql导出表结构到excel_PLSQL导出表结构和数据的三种方式
  12. 内容分发网络(CDN)
  13. 高德地图安卓 拖拽选点_高德地图想再造一个大众点评?
  14. skip gram模型的实现
  15. QAP内建包迁移教程
  16. 萤石android播放成功没画面,Android-再次解读萤石云视频
  17. h5网站建设设计解决方案
  18. s5.CentOS、Ubuntu、Rocky Linux系统初始化脚本
  19. C语言宏定义(常用宏定义)
  20. 处理ERP的EXCEL报表数字长度超15位导致精度丢失的问题

热门文章

  1. android开发照相机啊,Android照相机开发详解(一)
  2. 记一次安装 ubuntu 18.04 双系统 (双硬盘)
  3. 路由器R473g虚拟服务器设置,TL-R473G上网方式配置详解 路由器
  4. 【漫步计算机系统】:发展概览Ⅲ
  5. 物联网云平台—物联网背后的掌舵者?
  6. python中简述文件_python中的文件操作
  7. js做的一个猜数字小游戏
  8. BDTC 2017数据库上午:犹他大学、东方国信、蚂蚁金服、微软、人大金仓
  9. (附源码)php丽江旅游服务网站 毕业设计 010149
  10. 盘点MES系统物料管理那些事儿