springboot项目通过qq邮箱发送邮件

参考:https://www.cnblogs.com/happy4java/p/11205907.html

  1. 开启qq邮箱帐户设置中的smtp服务,并记下授权码(这个是之后配置用的密码)
  2. 在application.properties中引入依赖
  3. 注入JavaMailSender实例并发送邮件

引入依赖:
application.properties

spring.mail.host=smtp.qq.com
spring.mail.username=xxxxxx@qq.com // 开启smpt服务的qq邮箱
spring.mail.password=xxxxx // 授权码
spring.mail.protocol=smtp
spring.mail.default-encoding=UTF-8

发送邮件

package com.example.demo;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MailController {
    @Autowired
    private JavaMailSender javaMailSender;

    @RequestMapping("/getValicode")
    public String getValicode(String email) throws MessagingException {
        String regex = "\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}";
        String code = "";
        if (email.matches(regex)) { // 这里简单作了下邮箱格式校验
            code = String.valueOf((int) (Math.random() * 10)) + String.valueOf((int) (Math.random() * 10))
                    + String.valueOf((int) (Math.random() * 10)) + String.valueOf((int) (Math.random() * 10)); // 验证码为4个随机个位数字
            MimeMessage mimeMessage = javaMailSender.createMimeMessage();
            MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);
            messageHelper.setFrom("[email protected]"); // 开启smtp服务的邮箱
            messageHelper.setTo(email);
            messageHelper.setSubject("标题");
            messageHelper.setText("内容:

验证码:

" + code + "

"
, true); javaMailSender.send(messageHelper.getMimeMessage()); } else { System.out.println("邮箱输入格式错误"); } return code; } }

你可能感兴趣的:(java)