准备工作
在邮箱官网开放SMTP授权,获取相应密钥,才可以进行发送邮件
这里以网易163邮箱为例,登录邮箱后,依次点击“设置-POP3/SMTP/IMAP” ,然后开启SMTP服务。这时候会提示一个授权码,例如:HMASDWFASCZSMTAS,一定要记下来,一会会用到。


实现步骤
第一步、在pom.xml中添加邮箱依赖
        <!-- 邮箱验证码依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency> 
第二步、在application.yml中配置邮箱连接信息
spring:
  mail:
    #smtp服务主机  qq邮箱则为smtp.qq.com;163邮箱是smtp.163.com
    host: smtp.163.com
    #服务协议
    protocol: smtp
    # 编码集
    default-encoding: UTF-8
    #发送邮件的账户
    username: ************@163.com
    #授权码
    password: ****************
    test-connection: true
    properties:
      mail:
        smtp:
          auth: true
          starttls:
            enable: true
            required: true 
第三步、新建一个工具类,用于生成6位数的随机数
/**
 * 字符处理工具
 */
public class CharUtil {
    /**
     * 随机数6位生成
     * @return
     */
    public static String randomVerify () {
        Random random = new Random();
        String result = "";
        for (int i=0; i<6; i++)
        {
            result += random.nextInt(10);
        }
        return result;
    }
} 
第四步、新建一个controller接口类(核心)即可实现发送邮件
@RestController
@RequestMapping("/mail")
public class MailVerifyController {
    @Autowired
    private JavaMailSender mailSender;
    //	获得发件人信息
    @Value("${spring.mail.username}")
    private String from;
    /**
     * 发送邮件验证码
     * @param mail 发送的邮箱
     * @return
     */
    @PostMapping("/send")
    public Result save(@RequestParam String mail) {
        // 获取随机6位验证码
        String verify = CharUtil.randomVerify();
        SimpleMailMessage message = new SimpleMailMessage();
        // 发送邮箱
        message.setFrom(from);
        // 接受邮箱
        message.setTo(mail);
        // 标题
        message.setSubject("测试服务平台-邮箱验证");
        // 内容
        message.setText("<h1>尊敬的用户您好:</h1><br>" +
                "<h5> 您正在进行邮箱验证,本次验证码为:<span style='color:#ec0808;font-size: 20px;'>" + verify + "</span>,请在10分钟内进行使用。</h5>" +
                "<h5>如非本人操作,请忽略此邮件,由此给您带来的不便请谅解!</h5> <h5 style='text-align: right;'>--测试服务平台</h5>");
        try{
            // 发送邮件
            mailSender.send(message);
            return Result.success(200,"验证码发送成功");
        } catch (Exception e) {
            return Result.success(404,"验证码系统发送失败,请检查邮箱账号是否正确!",e);
        }
    }
} 
效果图
 



















