需求背景
- 搭配 验证码 进行邮件发送通知客户进行账户激活需要用到邮件发送功能。
导入依赖
```java<!--发送邮件相关依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<a name="DP8zK"></a>
# 配置
- 在springboot的application.yml 或者 properties下面进行配置
```java
mail:
host: smtp.qq.com
username: 414213352@qq.com
password: veglkzvxxxxxxx
default-encoding: utf-8
# password 非密码,是邮箱的授权码,取得方式自己百度
例程编写
- 比如我们要实现邮件发送,需要一个业务类,按照springboot的开发规范 分别创建接口,方法声明,接口实现类,下面将代码整合在一个框中进行,阅读时注意代码分割
```java
接口类
package net.xdclass.service;
public interface MailService {
// to 收信者
// subject mail标题
// content 内容
void sendMail(String to, String subject, String content);
}
实现类
@Service @Slf4j public class MailServiceImpl implements MailService {
@Autowired
private JavaMailSender mailSender;
// springboot提供的一个mailservice的简单实现,直接注入即可
# 从springboot的配置文件中读取配置
@Value("${mail.from}")
private String from;
/*
* @Author shihu
* @Description //TODO
* @Date 5:54 下午 2021/7/29
* @Param [to, subject, content]
* @return void
**/
@Override
public void sendMail(String to, String subject, String content) {
// 创建一个邮箱消息对象
SimpleMailMessage message = new SimpleMailMessage();
// 配置邮件发送人
message.setFrom(from);
// 配置邮件收件人
message.setTo(to);
// 邮件主题
message.setSubject(subject);
// 邮件内容
message.setText(content);
// 发送邮件
mailSender.send(message);
log.info("邮件发送成功{}",message.toString());
}
}
<a name="VlfoW"></a>
# 测试
```java
/*
* @Author shihu
* @Description //TODO address测试类
* @Date 9:06 上午 2021/7/28
* @Param
* @return
**/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = UserAppliaction.class)
@Slf4j
public class MailTest {
@Autowired
MailService mailService;
@Test
public void testMail() {
mailService.sendMail("addicated@126.com","测试邮件","这是一个测试邮件");
}
}