一、开启发送验证码邮箱的POP3/SMTP服务

注:以网易邮箱为例

1. 登录发送验证码邮箱

在这里插入图片描述

2. 找到设置,开启POP3/SMTP服务

在这里插入图片描述
注:此时你会获得授权码,保存下来,后面会用到

二、导入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

三、增加配置

  1. 我使用的是application.yaml
  2. 找邮箱服务器,使用SMTP服务器的值
    在这里插入图片描述
  3. 授权码
    第一步获得的
spring:
	mail:
	    # SMTP服务器
	    host: smtp.163.com
	    # 发送验证码邮箱
	    username: ***@163.com
	    # 授权码
	    password: ***
	    # 编码
	    default-encoding: utf-8

四、编写代码

注:在测试目录下编写代码
在这里插入图片描述

@SpringBootTest
public class UserServiceTest {

    // 用于发送邮件的对象
    @Autowired
    private JavaMailSender javaMailSender;

    /**
     * 发送邮件
     * @param code 验证码
     * @param from 发送验证码的邮箱
     * @param to 接收验证码的邮箱
     * @return true 发送成功,否则发送失败
     */
    public boolean sendEmailCode(String code, String from, String to) {
        try {
            // 用来设置邮件信息
            SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
            // 设置邮件标题
            simpleMailMessage.setSubject("登录验证码");
            // 设置邮件内容
            simpleMailMessage.setText("您收到的验证码是:" + code);
            // 设置源邮箱
            simpleMailMessage.setFrom(from);
            // 设置目的邮箱
            simpleMailMessage.setTo(to);
            // 发送
            javaMailSender.send(simpleMailMessage);
            // 没有出现异常,正常发送,返回true
            return true;
        } catch (MailException e) {
            // 发送过程中,发生错误,打印错误信息,返回false
            e.printStackTrace();
            return false;
        }
    }

    @Test
    public void test1() {
        // 设置验证码,可以自己随机生成
        String code = "011635";
        boolean b = sendEmailCode(code, "bliberte@163.com", "gliberte@163.com");
    }
}
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐