(已解决)spingboot 后端发送QQ邮箱验证码

打开QQ邮箱pop3请求服务:(按照QQ邮箱引导操作)

(已解决)spingboot 后端发送QQ邮箱验证码_第1张图片

(已解决)spingboot 后端发送QQ邮箱验证码_第2张图片

(已解决)spingboot 后端发送QQ邮箱验证码_第3张图片


导入依赖(不是maven项目就自己添加jar包):


        
            org.springframework.boot
            spring-boot-starter-mail
            3.2.1
        

application.properties配置:

:需要yml的,推荐转换工具或者下载idea插件yamls
yml,properties互转工具:yaml和proper互转工具

#邮箱配置
spring.mail.host=smtp.qq.com
spring.mail.port=465
spring.mail.username=邮箱地址
spring.mail.password=授权码
spring.mail.test-connection=true
spring.mail.properties.mail.smtp.ssl.enable=true

Controller层:

:我使用的是自己静态验证码,就是为了一步一步来更加清晰,首先是要实现成功发送邮件,

后期大家自己加随机数做动态验证码替换静态验证码就好了,可以使用存入数据库或者redius。

更新(动态验证码发送):动态验证码发送

package com.example.tianyidemo.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RequestMapping("/mail")
@RestController
public class MailDemoController {
    @Autowired
    private JavaMailSender javaMailSender;

    @GetMapping
    public String senderMail() {
        SimpleMailMessage message = new SimpleMailMessage();
        // 发件人 你的邮箱
        message.setFrom("[email protected]");
        // 接收人 接收者邮箱
        message.setTo(new String[]{"[email protected]"});

        //邮件标题
        message.setSubject("天易游戏论坛:");

        //邮件内容
        message.setText("尊敬的用户:你好,欢迎使用天易游戏论坛,您的注册验证码为:678253");

        javaMailSender.send(message);

        return "success";
    }
}

EmailService层:

package com.example.tianyidemo.service;
import jakarta.mail.MessagingException;
import jakarta.mail.internet.MimeMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

@Service
public class EmailService {
    @Autowired
    private JavaMailSender mailSender;

    @Value("${spring.mail.username}")
    private String from;

    /**
     * 发送邮件
     *
     * @param to      收件人邮箱
     * @param subject 邮件主题
     * @param content 邮件内容
     */
    public void sendMail(String to, String subject, String content) throws MessagingException {
        // 创建邮件消息
        MimeMessage message = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        helper.setFrom(from);
        helper.setTo(to);
        helper.setSubject(subject);
        helper.setText(content, true);

        // 发送邮件
        mailSender.send(message);
    }
}

实体类:(不知道有没有用,忘记了,要是报错就加上)

@Data
public class Mail {
    public String email;
    public String username;
    public String password;
}

前端测试:(请注意oken的路径拦截!如果没写token可以不用管,也不用请求头添加token)

(已解决)spingboot 后端发送QQ邮箱验证码_第4张图片

成功接收

(已解决)spingboot 后端发送QQ邮箱验证码_第5张图片


 

你可能感兴趣的:(运维,服务器,springboot)