java实现QQ邮箱发送验证码

首先,需要设置一个邮箱服务器,由该邮箱向注册用户发送验证码

1、进入QQ邮箱界面
QQ邮箱

2、点击设置
点击“”设置
3、切换到“账户”
“账户”
4、往下滑,看到以下部分,将图中红色框内的两个选项开启,在这过程中需要短信验证
(SMTP服务用于发送邮件)
开启smtp服务
5、开启后会获得对应的密码验证器(授权码,一串很长的字符,记得用文件存起来),完成,该邮箱就可以作为邮箱服务器发送邮件了!

Java代码邮箱参数后端设置部分

CommconsEmail.java


import java.util.Date;

import org.apache.commons.mail.SimpleEmail;

public class CommonsEmail {
	public static boolean sendTextMail(String strMail, String strTitle, String strText) throws Exception {
		boolean bret = true;
		SimpleEmail mail = new SimpleEmail();
		// 设置邮箱服务器信息
		mail.setSslSmtpPort("465");
		mail.setHostName("smtp.qq.com");
		// 设置密码验证器
		mail.setAuthentication("邮箱", "密码验证器");
		// 设置邮件发送者
		mail.setFrom("邮箱");
		// 设置邮件接收者
		mail.addTo(strMail);
		// 设置邮件编码
		mail.setCharset("UTF-8");
		// 设置邮件主题
		mail.setSubject(strTitle);
		// 设置邮件内容
		mail.setMsg(strText);
		// 设置邮件发送时间
		mail.setSentDate(new Date());
		// 发送邮件
		mail.send();
		bret = true;
		return bret;
	}

}

后端跳转Controller
UserController.java

@Controller
@RequestMapping("userController")
public class UserController {


	// 发送邮件
	@RequestMapping("/sendemail")
	@ResponseBody
	public void sendemail(String email, HttpServletRequest req, HttpServletResponse resp, )
			throws Exception {


		System.out.println("---------");
		int pass = (int) ((Math.random() * 9 + 1) * 100000);//随机生成验证码
		String strText = "【TH】您的验证码是 " + pass + ",用于TH网站验证,请勿将验证码透露给他人,如非本人操作,请立即访问www.baidu.com 查询";
		CommonsEmail.sendTextMail(email, "TH网站邮件认证", strText);
		resp.getWriter().write(String.valueOf(pass));//前端ajax接收
	}
}

test.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>获取验证码</title>
</head>
<body>
	<form action="#" method="post">
		<label>用户邮箱:</label>
		<input id="email" type="text" placeholder="输入邮箱">
		
		<input type="button" value="获取验证码" onclick="getCode();">
		<br>
		<label>获取到的验证码:</label>
		<input id="code" type="text" >
	</form>
	<script type="text/javascript" src="js/jquery.min.js" ></script>
	<script type="text/javascript">
		function getCode(){
			var email = $("#email").val();
			
			$.ajax({
				url:"userController/sendemail",
				type:"POST",
				anync:false,
				cache:false,
				data:{
					email:email//与后端请求方法sendemail()的参数名称一致,否则后端接收不到email参数
				},
				dataType:"json",
				success:function(data){
					if(data!=null){
						console.log(data);
						$("#code").val(data);
					}else{
						alert("获取验证码失败!");
					}
					
				}
				
				
			});
		}
	</script>
</body>
</html>

这样,就可以实现随机产生验证码,发送给对应的邮箱了。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值