需求背景

  • 搭配 验证码 进行邮件发送通知客户进行账户激活需要用到邮件发送功能。

    导入依赖

    ```java
    1. <!--发送邮件相关依赖-->
    2. <dependency>
    3. <groupId>org.springframework.boot</groupId>
    4. <artifactId>spring-boot-starter-mail</artifactId>
    5. </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","测试邮件","这是一个测试邮件");
    }


}

image.png