JAVA发送邮箱验证码
在JAVA中实现邮箱获取验证码
邮箱的SMTP服务器,一般123邮箱的是smtp.123.com,qq邮箱为smtp.qq.com,163邮箱就是smtp.163.com
下面是QQ邮箱为例
- 首先我们要导入maven的依赖
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.5</version>
</dependency>
- controller中的方法
@RequestMapping("myEmail")
@ResponseBody
public String myEmail(String email, Model m){
System.out.println("-------------------------------"+email);
Random rd = new Random();
Integer r = rd.nextInt(100000);
String s = r.toString();
try {
HtmlEmail emailId = new HtmlEmail();
//邮箱的SMTP服务器,一般123邮箱的是smtp.123.com,qq邮箱为smtp.qq.com
emailId.setHostName("smtp.qq.com");
//设置发送的字符类型
emailId.setCharset("utf-8");
//设置收件人
emailId.addTo(email);
//发送人的邮箱为自己的,用户名可以随便填
emailId.setFrom("xxx@qq.com","测试");
//设置发送人到的邮箱和用户名和授权码(授权码是自己设置的)
emailId.setAuthentication("xxx@qq.com","petwovtizhyxcchd");
//设置发送主题//创建一个HtmlEmail实例对象
//
emailId.setSubject("短信注册");
//设置发送内容
emailId.setMsg(s);
//进行发送
emailId.send();
}catch (Exception e){
}
m.addAttribute("emailId",s);
return s;
}
还要设置邮箱的SMTP服务器,在邮箱设置中找到并开启(POP3/SMTP服务)协议
如果邮箱没有收到验证码,可能会在邮箱的垃圾箱里面