SpringBoot整合Email

SpringBoot整合邮件发送功能

引入依赖

copy
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>

邮箱配置

发送简单邮件

copy
@Service
public class MailService {
@Resource
private JavaMailSender mailSender;
@Value("${spring.mail.username}")
private String fromEmail;
/**
* 发送文本邮件
*/
public void sendSimpleMail(String to, String subject, String content) {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(fromEmail);
message.setTo(to);
message.setSubject(subject);
message.setText(content);
mailSender.send(message);
}
}

sendSimpleMail的三个参数依次是:邮件的发送目标,邮件的标题,邮件的内容。

test测试代码

copy
@RunWith(SpringRunner.class)
@SpringBootTest
public class MailServiceTest {
@Autowired
MailService mailService;
@Test
public void sendSimpleMail() {
mailService.sendSimpleMail("951687336@qq.com",
"普通文本邮件",
"普通文本邮件内容测试");
}
}

controller中代码测试

copy
@Controller
public class WireTest {
@Autowired
private MailService mailService;
@RequestMapping("test")
@ResponseBody
public String emailTest(){
mailService.sendSimpleMail("951687336@qq.com",
"普通文本邮件",
"普通文本邮件内容测试");
return "success";
}
}

发送html邮件
发送普通的文本文件邮件,使用的是SimpleMailMessage
发送的正文是HTML的邮件,使用的是MimeMessage

copy
/**
* 发送html邮件
*/
public void sendHtmlMail(String to, String subject, String content) throws MessagingException {
//注意这里使用的是MimeMessage
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(fromEmail);
helper.setTo(to);
helper.setSubject(subject);
//第二个参数是否是html,true表示发送的邮件正文是html文本
helper.setText(content, true);
mailSender.send(message);
}

测试

copy
@Test
public void sendHtmlMail() throws MessagingException {
mailService.sendHtmlMail("431899405@qq.com","一封html测试邮件","<body style=\"text-align: center;margin-left: auto;margin-right: auto;\">\n"
+ " <div id=\"welcome\" style=\"text-align: center;position: absolute;\" >\n"
+" <h3>\"一封html测试邮件\"</h3>\n"
+" <span>http://www.zimug.com</span>"
+ " <div style=\"text-align: center; padding: 10px\"><a style=\"text-decoration: none;\" href=\"https://zimug.com\" target=\"_bank\" >"
+ " <strong>我很用心,希望你有所收获</strong></a></div>\n"
+ " </div>\n" + "</body>");
}

源码地址

posted @   离人怎挽_wdj  阅读(49)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
历史上的今天:
2019-02-20 django之restframework使用 (二)视图三部曲
2019-02-20 django之restframework使用 (一)

点击右上角即可分享
微信分享提示