SpringBoot发送邮件

205 阅读1分钟

导入依赖

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

配置applicaion.yml

spring:
# 发送邮件配置
  mail:
    host: smtp.qq.com # 配置 smtp 服务器地址
    port: 587 # smtp 服务器的端口
    username: xxxxxxx@qq.com # 配置邮箱用户名(你的邮箱地址)
    password: xxxxxxxxx # 配置申请到的授权码(邮箱的授权码)如何申请邮箱的授权码,自行百度哦
    default-encoding: UTF-8 # 配置邮件编码
    properties:
      mail:
        smtp:
          socketFactoryClass: javax.net.ssl.SSLSocketFactory # 配饰 SSL 加密工厂
        debug: true

发送邮件的实现类

@Component
@Slf4j
public class EmailUtils {
    @Autowired
    JavaMailSender javaMailSender;

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

    public void sendHtml(String title, String html, String to) {
        Long start=System.currentTimeMillis();
        MimeMessage mailMessage = javaMailSender.createMimeMessage();

        MimeMessageHelper helper = new MimeMessageHelper(mailMessage);
        try {
            helper.setFrom(username);  // 必填
            helper.setTo(to);   // 必填
//            helper.setBcc("密送人");   // 选填
            helper.setSubject(title);  // 必填
            helper.setSentDate(new Date());//发送时间
            helper.setText(html, true);   // 必填  第一个参数要发送的内容,第二个参数:是不是Html格式。
            javaMailSender.send(mailMessage);
            Long end=System.currentTimeMillis();
            System.out.println(String.format("发送总耗时:%S 毫秒",end - start ));
        } catch (MessagingException e) {
            log.error("发送邮件失败", e);
        }
    }
}

调用测试

@Service
public class EmailServiceImpl implements IEmailService {
    @Autowired
    private  EmailUtils emailUtils;

    @Override
    public void sendEmail() {
        String title = "发送邮件测试";
        String content = "hello springboot测试邮件";
        String to = "2020279822@qq.com";
        emailUtils.sendHtml(title, content, to);
    }
 }

image.png

本次测试暂且到此了,下次测试一下如何发送附件呦