SpringBoot集成邮箱服务
SpringBoot集成邮箱服务
-
引入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
-
开启邮箱的SMTP服务,获取授权码,一般是在邮箱的设置->账户里开启
-
配置 application.yaml 文件
spring: # 邮件配置 mail: # smtp服务主机 host: smtp.163.com / smtp.qq.com # 服务协议 protocol: smtp # 编码集 default-encoding: UTF-8 # 允许测试连接 test-connection: true # 发件人 username: 发送方邮箱 # 授权码 password: 第二步获取的授权码
-
编写需要的邮件对象
package com.jojo.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; /** * 邮件对象 */ @Data @ApiModel(value = "邮件内容") public class MailVo implements Serializable { @ApiModelProperty(value = "是否是html格式") private boolean isHtml; @ApiModelProperty(value = "接收者(可以多个)") private String[] receivers; @ApiModelProperty(value = "邮件主题") private String title; @ApiModelProperty(value = "邮件内容") private String content; }
-
将JavaMailSender类注入Spring容器中
@Value("${spring.mail.username}") private String mailSender; @Value("${spring.mail.password}") private String mailPwd; @Bean public JavaMailSenderImpl JavaMailSender(){ JavaMailSenderImpl Sender = new JavaMailSenderImpl(); Sender.setHost("smtp.qq.com"); Sender.setUsername(mailSender); Sender.setPassword(mailPwd); return Sender; }
-
编写邮件工具类
package com.jojo.utils; import com.jojo.vo.MailVo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Component; import javax.mail.internet.MimeMessage; import java.util.Arrays; /** * 发送邮件 */ @Component @Slf4j public class MailUtil { @Autowired private JavaMailSender mailSender; @Value("${spring.mail.username}") private String sender; /** * 发送邮件 * @param mail 邮件内容 * @return */ public String sendMail(MailVo mail){ try{ if (mail.isHtml()){ MimeMessage mailMessage = mailSender.createMimeMessage(); // 可以发送文件 MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true); messageHelper.setFrom(sender); messageHelper.setTo(mail.getReceivers()); messageHelper.setSubject(mail.getTitle()); messageHelper.setText(mail.getContent(),true); mailSender.send(mailMessage); log.info("HTMl格式邮件发送成功!==> 收件人:{}", Arrays.asList(mail.getReceivers())); } else { // 创建邮件对象 SimpleMailMessage mailMessage = new SimpleMailMessage(); // 发件人 mailMessage.setFrom(sender); // 收件人 mailMessage.setTo(mail.getReceivers()); // 邮件主题 mailMessage.setSubject(mail.getTitle()); // 邮件内容 mailMessage.setText(mail.getContent()); mailSender.send(mailMessage); log.info("普通邮件发送成功!==> 收件人:{}", Arrays.asList(mail.getReceivers())); } return "邮件发送成功!"; } catch (Exception e){ log.error("邮件发送失败!==> {}",e.getMessage()); return "邮件发送失败!"; } } }
-
普通邮件测试
@Test void TestMail(){ MailVo mailVo = new MailVo(); mailVo.setReceivers(new String[]{"3058816256@qq.com"}); mailVo.setTitle("邮箱测试"); mailVo.setContent("这是一条测试邮箱"); System.out.println(mailUtil.sendMail(mailVo)); }
-
html邮件测试
@Test void TestMail(){ MailVo mailVo = new MailVo(); mailVo.setReceivers(new String[]{"3058816256@qq.com"}); mailVo.setHtml(true); mailVo.setTitle("邮箱测试"); mailVo.setContent("<a href='https://www.baidu.com' style='color:red' >hello,world</a>"); System.out.println(mailUtil.sendMail(mailVo)); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端