项目需要,用户注册需要发送邮件,这个小功能折腾了两天,开始时候始终接收不到邮件信息。最终终于解决
1. 引入库
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>
2. 工具类
@Component
public class EmailSenderUtil {private static final String EMAIL_HOST = "XXXX@126.com";// 2.发送 HTML 格式邮件// 发送HTML格式邮件的方法public void sendHtmlEmail(String to, String subject, String content) {JavaMailSenderImpl sender = new JavaMailSenderImpl();sender.setHost("smtp.126.com");sender.setUsername("XXXXXX@126.com");sender.setPassword("VUZUOPFXUSJTTJZA");//编码集sender.setDefaultEncoding("Utf-8");try {// 创建一个 MimeMessage 对象,用于构建复杂邮件消息MimeMessage message = sender.createMimeMessage();// 使用 MimeMessageHelper 来简化设置 MimeMessage 属性,第二个参数 true 表示需要创建 multipart 类型的邮件MimeMessageHelper helper = new MimeMessageHelper(message, true);helper.setFrom(EMAIL_HOST);helper.setTo(to);helper.setSubject(subject);// 设置邮件内容和格式,第二个参数 true 表示内容为 HTML 格式helper.setText(content, true);// 发送邮件sender.send(message);System.out.println("邮件发送成功!");} catch (MessagingException e) {System.out.println("邮件发送失败!" + e.getMessage());}}
3. controller层使用
if(Validator.isEmail(mail)){String verify = TouUtil.randomVerify();String subject = "登录验证码";String content="xxxxxxxxxx";emailSenderUtil.sendHtmlEmail(mail, subject, content);return AjaxResult.success("发送成功","");}else {return AjaxResult.error("邮箱无效");}
欢迎点赞、收藏、转发。