项目需要,用户注册需要发送邮件,这个小功能折腾了两天,开始时候始终接收不到邮件信息。最终终于解决
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("邮箱无效");
}
欢迎点赞、收藏、转发。