SSM实现邮箱验证功能

爱被打了一巴掌 2022-02-26 06:28 763阅读 0赞

(一)项目目录

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMyOTAyNzQx_size_16_color_FFFFFF_t_70

(二)添加依赖pom.xml

20190329111616281.png

(三)生成唯一激活码

  1. public class CodeUtil {
  2. //生成唯一的激活码
  3. public String generateUniqueCode(){
  4. return UUID.randomUUID().toString().replaceAll("-", "");
  5. }
  6. }

(四)邮箱和授权吗

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMyOTAyNzQx_size_16_color_FFFFFF_t_70 1

(五)发送邮件工具类

  1. import javax.mail.*;
  2. import javax.mail.internet.*;
  3. import java.io.IOException;
  4. import java.util.Date;
  5. import java.util.Properties;
  6. /**
  7. * 发送邮件工具类
  8. * @Author:
  9. * @Date:
  10. */
  11. //@Component 将工具类注入spring容器中
  12. @Component
  13. public class SendEmailUtil {
  14. /*
  15. *发送邮件
  16. * @param toEmail 目的地
  17. * @param code 唯一激活码
  18. * @return
  19. */
  20. public int send_email(String toEmail,String code) throws IOException, AddressException, MessagingException{
  21. String to = toEmail;
  22. String subject = "邮箱验证";
  23. String content = "<html><head></head><body><h1>这是一封激活邮件,激活请点击以下链接</h1><h3><a href='http://localhost:8080/RegisterDemo/ActiveServlet?code="
  24. + code + "'>http://localhost:8080/RegisterDemo/ActiveServlet?code=" + code
  25. + "</href></h3></body></html>";
  26. Properties properties = new Properties();
  27. properties.put("mail.smtp.host", "smtp.qq.com");
  28. properties.put("mail.smtp.port", "25");
  29. properties.put("mail.smtp.auth", "true");
  30. //发送者的邮箱和授权码
  31. Authenticator authenticator = new Email_Authenticator("****@qq.com", "pchfwcnialuudjab");
  32. Session sendMailSession = javax.mail.Session.getDefaultInstance(properties, authenticator);
  33. MimeMessage mailMessage = new MimeMessage(sendMailSession);
  34. //邮箱的发送者
  35. try {
  36. mailMessage.setFrom(new InternetAddress("2464171268@qq.com"));
  37. } catch (MessagingException e) {
  38. e.printStackTrace();
  39. }
  40. //邮箱接收
  41. // Message.RecipientType.TO属性表示接收者的类型为TO
  42. mailMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
  43. //发送邮件的标题
  44. mailMessage.setSubject(subject, "UTF-8");
  45. //发送邮件的日期
  46. mailMessage.setSentDate(new Date());
  47. //MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
  48. Multipart mainPart = new MimeMultipart();
  49. //创建一个包含HTML内容的MimeBodyPart
  50. BodyPart html = new MimeBodyPart();
  51. //设置邮件的内容的格式和字节码
  52. html.setContent(content.trim(), "text/html; charset=utf-8");
  53. mainPart.addBodyPart(html);
  54. mailMessage.setContent(mainPart);
  55. Transport.send(mailMessage);
  56. return 1;
  57. }
  58. }

控制逻辑部分代码:UserService.java

20190329112311461.png

实现类UserServiceImpl.java:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMyOTAyNzQx_size_16_color_FFFFFF_t_70 2

单元测试代码:

20190329112412645.png

收件箱:

20190329112641118.png

发表评论

表情:
评论列表 (有 0 条评论,763人围观)

还没有评论,来说两句吧...

相关阅读

    相关 php实现邮箱验证

    一、Introduction 需求是用户在注册时填写email,注册后,需要到邮箱验证后才能登陆。 二、实现 验证流程,注册成功后,为用户生成一个验证码;将验证码以连接方

    相关 邮箱验证功能实现

    在进行实际项目的开发过程中,我们可能会遇到需要需要对用户账号密码进行找回,这时就需要我们通过邮件进行验证,从而对用户信息进行修改,下面我就将自己开发过程中的邮件发送功能简单描述