栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Springboot实战:发送邮件hutool+thymeleaf支持自定义模板(附git源码下载)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Springboot实战:发送邮件hutool+thymeleaf支持自定义模板(附git源码下载)

Springboot-cli 开发脚手架系列

文章目录
  • Springboot-cli 开发脚手架系列
  • 前言
    • 1. 开通发送邮件功能
    • 2. 环境配置
    • 3. 邮件配置
    • 4. 邮件服务
    • 5. 效果演示
    • 6. 源码分享


前言

本教程分为普通版邮件发送,和自定模板发送。

  • 普通发送
    内容以字符串的形式发送,样式单一。
  • 自定义模块发送
    可自定义Html模板,样式丰富,配合thymeleaf绑定变量,实现更自由的数据绑定。
1. 开通发送邮件功能
  • 这里以QQ邮箱为例
  • 打开qq邮箱,切换至账号菜单
  • 拉到下面账号安全,开启IMAP/SMTP服务

  • 保存这个秘钥
  • 接下来我们开始实战案例
2. 环境配置
  • 导入依赖
      
        
            cn.hutool
            hutool-all
            5.7.22
        
        
        
            com.sun.mail
            javax.mail
            1.6.2
        
        
        
            org.springframework.boot
            spring-boot-starter-thymeleaf
        
  • yml配置
email:
  host: smtp.qq.com
  from: xxx@qq.com
  # 密码自行登录邮箱开启获取,操作很简单
  pass: xxxxxxxxxxxxxx
  port: 25
3. 邮件配置
  • EMailConfig.java
@Data
@Component
@ConfigurationProperties(prefix = EMailConfig.PRE)
public class EMailConfig {

    public final static String PRE = "email";

    private String host;
    private Integer port;
    private String from ;
    private String pass;

    public MailAccount getAccount() {
        MailAccount account = new MailAccount();
        account.setAuth(true);
        account.setHost(host);
        account.setPort(port);
        account.setFrom(from);
        account.setUser(from);
        account.setPass(pass);
        return account;
    }
}
4. 邮件服务
  • EmailService.java
@Service
@Slf4j
@RequiredArgsConstructor
public class EmailService {

     private final EMailConfig eMailConfig;

    private final TemplateEngine templateEngine;

    
    public void send(String to, String subject, String content) {
        MailUtil.send(eMailConfig.getAccount(), to, subject, content, false);
    }

    
    public void send(String to, String subject, String content, File... files) {
        MailUtil.send(eMailConfig.getAccount(), to, subject, content, false, files);
    }

    
    public void send(String to, String subject, Context context) {
        String template = templateEngine.process("emailTemplate", context);
        MailUtil.send(eMailConfig.getAccount(), to, subject, template, true);
    }


    
    public void send(String to, String subject, Context context, File... files) {
        String template = templateEngine.process("emailTemplate", context);
        MailUtil.send(eMailConfig.getAccount(), to, subject, template, true, files);
    }
}
  • 模板文件放置在src/main/resources/templates目录下



    
    激活码


    

欢迎登录Springboot-cli

您好,您的激活码为,请在5分钟内使用完成操作。
  • 整体项目结构
5. 效果演示
  • 编写测试类
@SpringBootTest
class DomeApplicationTests {

    @Autowired
    private EmailService emailService;

    @Test
    void send1() {
        emailService.send("742740345@qq.com", "测试邮件", "欢迎使用springboot-cli开发脚手架");
    }

    @Test
    void send2() {
        File file = new File("D:\test\test.txt");
        emailService.send("742740345@qq.com", "测试邮件", "欢迎使用springboot-cli开发脚手架", file);
    }

    @Test
    void send3() {
        Context context = new Context();
        context.setVariable("code", 6666);
        emailService.send("742740345@qq.com", "激活码模板邮件", context);
    }

    @Test
    void send4() {
        File file = new File("D:\test\test.txt");
        Context context = new Context();
        context.setVariable("code", 6666);
        emailService.send("742740345@qq.com", "激活码模板邮件", context, file);
    }
}
  • 普通邮件
  • 自定义模板
6. 源码分享
  • Springboot-cli开发脚手架,集合各种常用框架使用案例,完善的文档,致力于让开发者快速搭建基础环境并让应用跑起来。
  • 项目源码github地址
  • 项目源码国内gitee地址
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/881059.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号