SpringBoot QQ邮箱发送邮件实例代码

 更新时间:2021年12月31日 16:16:27   作者:Silly,,  
大家好,本篇文章主要讲的是SpringBoot QQ邮箱发送邮件实例代码,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览

SpringBoot整合邮件任务(QQ邮箱发送)

1.获取QQ邮箱授权码

在这里插入图片描述

2.导入邮箱发送依赖启动器

使用定制邮件模板的方法实现通用邮件发送,Thymeleaf构建邮件模板需要一起导入依赖。

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

        <!-- thymeleaf模板依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

3.配置文件yml添加邮件服务配置

# Spring配置
spring:
  mail:
    host: smtp.qq.com
    username: ********@qq.com
    # password是第一步QQ邮箱开通的smtp服务后得到的客户端授权码
    password: ******************
    default-encoding: UTF-8
    properties:
      mail:
        smtp:
          auth: true
          starttls:
            enable: true
            required: true
#thymeleaf模板引擎配置太简单,就不贴出来了

4.编写接口IMailService

public interface IMailService {
    void sendHtmlMailThymeLeaf(String mailFrom, String mailFromNick, String mailTo, String cc, String subject, String content);
}

5.编写实现MailServiceImpl

@Service
public class MailServiceImpl implements IMailService {

    /**
     * JavaMailSender是Spring Boot在MailSenderPropertiesConfiguration 类中配直好的,该类在 Mail
     * 自动配置类 MailSenderAutoConfiguration 中导入 因此这里注入 JavaMailSender 就可以使用了
     */
    @Autowired
    private JavaMailSender mailSender;

    @Override
    public void sendHtmlMailThymeLeaf(String mailFrom, String mailFromNick, String mailTo, String cc, String subject, String content) {
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        try {
            MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
            mimeMessageHelper.setFrom(new InternetAddress(mailFromNick + " <" + mailFrom + ">"));
            // 设置多个收件人
            String[] toAddress = mailTo.split(",");
            mimeMessageHelper.setTo(toAddress);
            if (!StringUtils.isEmpty(cc)) {
                mimeMessageHelper.setCc(cc);
            }
            mimeMessageHelper.setSubject(subject);
            // 第二个参数为true表示邮件正文是html格式的,默认是false
            mimeMessageHelper.setText(content, true);

            mailSender.send(mimeMessage);
        } catch (MessagingException e) {
            System.out.println(e);
        }

    }
}

6.Controller调用

    // 发件人要跟yml配置文件里填写的邮箱一致
    String mailFrom = "******@qq.com";
    // 收件人
    String mailTo = "******@qq.com,******@qq.com";
    // 抄送(可为空)
    String cc = "******@qq.com";


    // 注入mailService
    @Autowired
    private IMailService mailService;
  
    // 注入TemplateEngine
    @Autowired
    TemplateEngine templateEngine;

    @RequestMapping("/other/test")//请求路径
    @ResponseBody
    public void testMail() {

        //注意1:这里我是查询对应的内容,使用富文本编辑器存储html标签的内容
        Strategy strategy = strategyService.selectStrategyByStrategyId(Long.valueOf(1));
       
        Context context = new Context(); // 导包是org.thymeleaf.context
        //注意2:获取发送的内容传入thymeleaf模板中
        context.setVariable("content", strategy.getStrategyContent());

        String content = templateEngine.process("mailTemplate.html", context);
        //System.out.println(content);

        mailService.sendHtmlMailThymeLeaf(mailFrom, "定义发件人名字", mailTo, cc, "定义邮件标题", content);

        System.out.println("邮件发送成功");
    }

7.thymeleaf模板 mailTemplate.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>邮件发送</title>
</head>

<body>
    <!--使用富文本框包含HTML标签 使用 th:utext标签 会解析html,显示相应的效果-->
<div th:utext="${content}">Some escaped text</div>

</body>

</html>

总结

到此这篇关于SpringBoot QQ邮箱发送邮件实例代码的文章就介绍到这了,更多相关SpringBoot 邮箱发信内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java并发学习之BlockingQueue实现生产者消费者详解

    java并发学习之BlockingQueue实现生产者消费者详解

    这篇文章主要介绍了java并发学习之BlockingQueue实现生产者消费者详解,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Java实现学生信息管理系统IO版本

    Java实现学生信息管理系统IO版本

    这篇文章主要为大家详细介绍了Java实现学生信息管理系统IO版本,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • Java 发送http请求(get、post)的示例

    Java 发送http请求(get、post)的示例

    这篇文章主要介绍了Java 发送http请求的示例,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-10-10
  • SpringBoot+MyBatis-Plus实现分页的项目实践

    SpringBoot+MyBatis-Plus实现分页的项目实践

    MyBatis-Plus是基于MyBatis的持久层增强工具,提供简化CRUD、代码生成器、条件构造器、分页及乐观锁等功能,极大简化了开发工作量并提高了开发效率,本文就来介绍一下SpringBoot+MyBatis-Plus实现分页的项目实践,感兴趣的可以了解一下
    2024-11-11
  • Java文件管理操作的知识点整理

    Java文件管理操作的知识点整理

    这篇文章主要为大家详细介绍了Java中文件管理操作的一些知识点和实现方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-09-09
  • Mybatis 中如何判断集合的size

    Mybatis 中如何判断集合的size

    这篇文章主要介绍了在Mybatis中判断集合的size操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Java实现的zip压缩及解压缩工具类示例

    Java实现的zip压缩及解压缩工具类示例

    这篇文章主要介绍了Java实现的zip压缩及解压缩工具类,结合实例形式分析了java对文件的进行zip压缩及解压缩的具体操作技巧,需要的朋友可以参考下
    2018-01-01
  • Java多线程之JUC(java.util.concurrent)的常见类(多线程编程常用类)

    Java多线程之JUC(java.util.concurrent)的常见类(多线程编程常用类)

    这篇文章主要给大家介绍了关于Java多线程之JUC(java.util.concurrent)的常见类(多线程编程常用类)的相关资料,Java中的JUC(java.util.concurrent)包提供了一些并发编程中常用的类,这些类可以帮助我们更方便地实现多线程编程,需要的朋友可以参考下
    2024-02-02
  • SpringBoot JavaMailSender发送邮件功能(实例详解)

    SpringBoot JavaMailSender发送邮件功能(实例详解)

    JavaMailSender是Spring提供的,非常好用的,实现邮件发送的接口 ,这篇文章主要介绍了SpringBoot JavaMailSender发送邮件功能,需要的朋友可以参考下
    2024-03-03
  • Spring配置动态数据源实现读写分离的方法

    Spring配置动态数据源实现读写分离的方法

    这篇文章主要介绍了利用Spring配置动态数据源实现读写分离的方法,文中通过示例代码介绍的很详细,相信对大家的理解和学习具有一定的参考借鉴价值,藕需要的朋友可以一起学习学习。
    2017-01-01

最新评论