当前位置: 代码迷 >> 综合 >> java实现qq邮箱发送注册验证码
  详细解决方案

java实现qq邮箱发送注册验证码

热度:51   发布时间:2023-10-23 19:21:52.0
 
 
import javax.mail.*;
import javax.mail.internet.MimeMessage;
/**  *  * @param email 发送邮箱验证码(注册)  * @return 验证码给前段  */ @RequestMapping(value = "/verifyEmail",method= RequestMethod.POST)
@ResponseBody
public String verifyEmail(@RequestParam("email") String email){Properties prop = new Properties();// 开启debug调试,以便在控制台查看  prop.setProperty("mail.debug", "true");// 设置邮件服务器主机名  prop.setProperty("mail.host", "smtp.qq.com");// 发送服务器需要身份验证  prop.setProperty("mail.smtp.auth", "true");// 发送邮件协议名称  prop.setProperty("mail.transport.protocol", "smtp");prop.put("mail.smtp.ssl.enable", "true");// 创建session  Session session = Session.getInstance(prop);// 通过session得到transport对象  Transport ts = null;try {ts = session.getTransport();} catch (NoSuchProviderException e) {e.printStackTrace();}// 连接邮件服务器:邮箱类型,帐号(12345678)换成发送人的QQ,授权码:hpifogzyvixdbfbh,这是我的,你要换成你自己的 try {ts.connect("smtp.qq.com", "12345678", "hpifogzyvixdbfbh");// 后面的字符是授权码  } catch (MessagingException e) {e.printStackTrace();}//随机生成四位数字  String str="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";StringBuilder stringBuilder=new StringBuilder(4);for(int i=0;i<4;i++){char ch=str.charAt(new Random().nextInt(str.length()));stringBuilder.append(ch);}MimeMessage message=null;// 创建邮件  try {
  
     //emailService这个类我就不给出了,你换成自己的servlet层,调用就可以了
     message=emailService.createSimpleMail(session,email,stringBuilder.toString());} catch (Exception e) {e.printStackTrace();}try {} catch (Exception e) {e.printStackTrace();}// 发送邮件  try {ts.sendMessage(message, message.getAllRecipients());session.setDebug(true);} catch (MessagingException e) {e.printStackTrace();}try {ts.close();} catch (MessagingException e) {e.printStackTrace();}String cunt=stringBuilder.toString();return cunt;
}
 
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**  * 注册  * @Method: createSimpleMail  * @Description: 创建一封只包含文本的邮件  */ public MimeMessage createSimpleMail(Session session, String email,String stringBuilder) throws Exception  {// 创建邮件对象  MimeMessage message = new MimeMessage(session);// 指明邮件的发件人...........@qq.com  message.setFrom(new InternetAddress("...........@qq.com"));// 指明邮件的收件人  message.setRecipient(Message.RecipientType.TO, new InternetAddress(email));// 邮件的标题  message.setSubject("sea View 账号注册");// 邮件的文本内容  message.setContent("欢迎您注册sea View,账号注册验证码为(一分钟有效):"+stringBuilder+",请勿回复此邮箱", "text/html;charset=UTF-8");// 返回创建好的邮件对象  return message;
}