Spring Boot整合邮箱发送邮件实例
1. 准备工作
登录进自己的 qq 邮箱获取授权码
设置 – 账户 – POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

点击开始获取授权码,将授权码保存下来,下面代码整合的时候需要使用

2. 代码整合
创建一个 Spring Boot 项目,引入以下依赖
<!-- email -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
配置文件
server:
port: 8080
spring:
# email 配置
mail:
# SMTP 服务器地址
host: smtp.qq.com
username: # 你的qq 邮箱地址
password: # 授权码,上面从 qq 邮箱官网得到的授权码
port: 587
protocol: smtp
default-encoding: UTF-8
创建一个邮件收件人信息的实体类
/**
* @author lishisen
* @description 邮件收件人信息
* @date 2022/1/9 9:37
**/
@AllArgsConstructor
@NoArgsConstructor
@Data
public class EmailModel implements Serializable {
// 收件人邮箱地址
private String receiveEmailAddress;
// 邮箱主题
private String emailTheme;
// 邮件内容
private String emailContent;
}
创建一个服务提供类,SendEmailService.java
/**
* @author lishisen
* @description 邮件发送服务类
* @date 2022/1/9 9:40
**/
@Slf4j
@Component
public class SendEmailService {
@Autowired
private JavaMailSender javaMailSender;
@Autowired
private JavaMailSenderImpl javaMailSenderImpl;
// 发送者地址
private String posterAddress = "1876419736@qq.com";
// 发送者名称
private String posterName = "测试邮件发送";
/**
* 文本发送
**/
public void sendEmailAsText(final EmailModel emailModel) {
System.out.println(emailModel.toString());
MimeMessagePreparator mimeMessagePreparator = mimeMessage -> {
mimeMessage.setFrom(posterAddress);
mimeMessage.setRecipients(Message.RecipientType.TO, emailModel.getReceiveEmailAddress());
mimeMessage.setText("发送者地址:" + posterAddress + '\n'
+ "发送者名称:" + posterName + '\n'
+ "内容:" + emailModel.getEmailContent());
};
try {
this.javaMailSender.send(mimeMessagePreparator);
log.info("邮箱已返送至[{}]邮箱!", emailModel.getReceiveEmailAddress());
} catch (MailException e) {
log.error("邮箱异常:{}", e);
}
}
/**
* html 网页发送
* 该方法为同步方法
**/
public void sendEmailAsSysExceptionHtml(final EmailModel emailModel, String info) {
MimeMessage mimeMessage = javaMailSenderImpl.createMimeMessage();
MimeMessageHelper mimeMessageHelper;
try {
mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
mimeMessageHelper.setFrom(posterAddress);
mimeMessageHelper.setTo(emailModel.getReceiveEmailAddress());
mimeMessageHelper.setSubject(emailModel.getEmailTheme());
mimeMessageHelper.setText(
"<!DOCTYPE html>\n" +
"<html lang=\"en\">\n" +
"<head>\n" +
" <meta charset=\"UTF-8\">\n" +
" <title>Title</title>\n" +
"</head>\n" +
"<body>\n" +
"<h2>" + info + "</h2>\n" +
"<h3>您的验证码为:<span style='color: red'" + ">" +
emailModel.getEmailContent() +
"</span> " + ",请在 5 分钟内进行验证</h3>\n" +
"</body>\n" +
"</html>"
, true);
this.javaMailSender.send(mimeMessage);
log.info("邮箱已返送至[{}]邮箱!", emailModel.getReceiveEmailAddress());
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
测试使用
@Autowired
private SendEmailService sendEmailService;
@Test
public void sendMailTest() {
// 创建收件人实体类,封装收件人的信息
EmailModel emailModel = new EmailModel();
emailModel.setReceiveEmailAddress("18xxxxxqq.com");
emailModel.setEmailTheme("测试发送");
emailModel.setEmailContent("测试发送邮箱主体信息内容");
// 调用发送服务方法执行发送任务
sendEmailService.sendEmailAsText(emailModel);
System.out.println("邮件发送成功");
}

总结
到此这篇关于Spring Boot整合邮箱发送邮件实例的文章就介绍到这了,更多相关Spring Boot邮箱发送内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
使用SpringBoot+OkHttp+fastjson实现Github的OAuth第三方登录
这篇文章主要介绍了使用SpringBoot+OkHttp+fastjson实现Github的OAuth第三方登录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-02-02
RestTemplate如何通过HTTP Basic Auth认证示例说明
这篇文章主要为大家介绍了RestTemplate如何通过HTTP Basic Auth认证的示例说明,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-03-03
Fluent Mybatis如何做到代码逻辑和sql逻辑的合一
对比原生Mybatis, Mybatis Plus或者其他框架,FluentMybatis提供了哪些便利呢?很多朋友对这一问题不是很清楚,今天小编给大家带来一篇教程关于Fluent Mybatis如何做到代码逻辑和sql逻辑的合一,一起看看吧2021-08-08
使用Spring-Retry解决Spring Boot应用程序中的重试问题
重试的使用场景比较多,比如调用远程服务时,由于网络或者服务端响应慢导致调用超时,此时可以多重试几次。用定时任务也可以实现重试的效果,但比较麻烦,用Spring Retry的话一个注解搞定所有,感兴趣的可以了解一下2023-04-04


最新评论