Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SpringBoot发送邮件+使用html模板发送邮件

SpringBoot发送邮件+使用html模板发送邮件

作者头像
@依然范特西
发布于 2022-12-12 07:46:59
发布于 2022-12-12 07:46:59
3.4K00
代码可运行
举报
文章被收录于专栏:云天的博客云天的博客
运行总次数:0
代码可运行

SpringBoot发送邮件+使用html模板发送邮件

这两天在公司做商城系统有一个业务用到了发送邮件功能 springboot 有spring-boot-starter-mail

前期准备

邮箱需要开启smtp服务 获得smtp密钥

  1. 第一步引入pom依赖
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>
  1. yml配置
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spring:
  mail:
    username: ***********@163.com
    password: **** #邮箱提供的smtp密钥
    host: smtp-mail.163.com
    port: 587
    properties:
      mail:
        smtp:
          starttls:
            required: true
  1. html模板准备
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="description" content="email code">
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<!--邮箱发票模板-->
<body>
<div style="background-color:#ECECEC; padding: 35px;">
    <table cellpadding="0" align="center"
           style="width: 800px;height: 100%; margin: 0px auto; text-align: left; position: relative; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; font-size: 14px; font-family:微软雅黑, 黑体; line-height: 1.5; box-shadow: rgb(153, 153, 153) 0px 0px 5px; border-collapse: collapse; background-position: initial initial; background-repeat: initial initial;background:#fff;">
        <tbody>
        <tr>
            <th valign="middle"
                style="height: 25px; line-height: 25px; padding: 15px 35px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: RGB(148,0,211); background-color: RGB(148,0,211); border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px;">
                <font face="微软雅黑" size="5" style="color: rgb(255, 255, 255); ">投豹</font>
            </th>
        </tr>
        <tr>
            <td style="word-break:break-all">
                <div style="padding:25px 35px 40px; background-color:#fff;opacity:0.8;">

                    <h2 style="margin: 5px 0px; ">
                        <font color="#333333" style="line-height: 20px; ">
                            <font style="line-height: 22px; " size="4">
                                尊敬的用户:</font>
                        </font>
                    </h2>
                    <!-- 中文 -->
                    <p>您好!您申请的发票已经开票</p><br>
                    <!-- 英文 -->
                    <h2 style="margin: 5px 0px; ">
                        <font color="#333333" style="line-height: 20px; ">
                            <font style="line-height: 22px; " size="4">
                               发票下载</font>
                        </font>
                    </h2>
                    <p><font color="#ff8c00">{0}</font></p>
                    <div style="width:100%;margin:0 auto;">
                        <div style="padding:10px 10px 0;border-top:1px solid #ccc;color:#747474;margin-bottom:20px;line-height:1.3em;font-size:12px;">
                         <!--- <p>****团队</p>
                            <p>联系我们:********</p>
                            <br> !-->
                            <p>此为系统邮件,请勿回复<br>
                                Please do not reply to this system email
                            </p>
                            <!--<p>©***</p>-->
                        </div>
                    </div>
                </div>
            </td>
        </tr>
        </tbody>
    </table>
</div>
</body>
</html>

开发

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    @Autowired
    JavaMailSenderImpl mailSender;

/**
     * 发送带附近的邮件信息
     * @param to 收件人
     * @param subject  主题
     * @param content  内容
     * @param filePath 附件
     */
    public static void sendAttachmentsMail(String to, String subject, String content, String filePath) {
           MimeMessage message = javaMailSender.createMimeMessage();
        try {
           
            MimeMessageHelper helper = new MimeMessageHelper(message, true);
            helper.setSubject(subject);
            helper.setText(buildContent(filePath + ""), true);
            helper.setTo(email);
            helper.setFrom(to);
            javaMailSender.send(message);
        } catch (MessagingException e) {
            throw new CustomerException(messageSourceUtil.getMessage(I18nConstant.SYSTEM_ERROR), "500");
        }

    }


    /**
     * 读取邮件模板
     * 替换模板中的信息
     *
     * @param title 内容
     * @return
     */
    public static String buildContent(String title) {
        //加载邮件html模板
        Resource resource = new ClassPathResource("templates/mailtemplate.ftl");
        InputStream inputStream = null;
        BufferedReader fileReader = null;
        StringBuffer buffer = new StringBuffer();
        String line = "";
        try {
            inputStream = resource.getInputStream();
            fileReader = new BufferedReader(new InputStreamReader(inputStream));
            while ((line = fileReader.readLine()) != null) {
                buffer.append(line);
            }
        } catch (Exception e) {
            log.info("发送邮件读取模板失败{}", e);
        } finally {
            if (fileReader != null) {
                try {
                    fileReader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        //替换html模板中的参数
        return MessageFormat.format(buffer.toString(), title);
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[Web开发]《SpringBoot + Email + Freemarker发送邮件》
添加以下依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freem
BinGo_Blog
2022/11/01
6540
java发送html模板的高逼格邮件
最近做了一个监测k8s服务pod水平伸缩发送邮件的功能(当pod的cpu/内存达到指定阈值后会水平扩展出多个pod、或者指定时间内pod数应扩展到指定数量),一开始写了个格式很low的邮件,像下面这样:
我的小碗汤
2019/03/01
7.8K0
java发送html模板的高逼格邮件
Django发送邮箱验证码实现以及邮箱html模板
1.setting配置 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = "smtp.163.com" # 服务器 EMAIL_PORT = 25 # 一般情况下都为25 EMAIL_HOST_USER = "xxxx@163.com" # 账号 EMAIL_HOST_PASSWORD = "XXXXXXXXXXXX" # 密码 (注意:这里的密码指的是授权码) EMAIL_USE_TLS = Fal
cywhat
2022/11/22
2.5K0
Django发送邮箱验证码实现以及邮箱html模板
使用腾讯云模板发送短信验证码
目录 学习目标: 学习内容: 学习时间: 学习过程: demo结构图: 效果图: 配置准备: 依赖pom.xml application.properties: application.yml 腾讯云模板:(html) java程序: service: serviceImpl:(核心代码) 学习目标: 使用腾讯云模板发送短信验证码 ---- 学习内容: 内容: 首先导入下面的配置信息 .修改yml中的配置信息为自己的邮件信息 修改mailServiceImpl中的发送人和接受人邮箱 我们在contro
MIKE笔记
2023/03/23
8K0
使用腾讯云模板发送短信验证码
修改WordPress邮件通知样式
作者:matrix 被围观: 1,694 次 发布时间:2013-12-10 分类:Wordpress 兼容并蓄 | 8 条评论 »
HHTjim 部落格
2022/09/26
9350
修改WordPress邮件通知样式
SpringBoot 发送邮件
# 依赖 compile group: 'org.springframework.boot', name: 'spring-boot-starter-mail' # 配置 spring: # 发邮件 mail: host: smtp.qq.com port: 587 username: 1185172056@qq.com password: 不是qq邮箱的密码,是授权码 properties: smtp: auth: true
喜欢天文的pony站长
2020/06/29
4820
SpringBoot 发送邮件
今天给大家带来我的网站发送465端口邮件的代码,带html样式哦
今天给大家分享,在服务器上面发送邮件 服务器默认禁用了25端口,查阅了一些资料,说是得用465端口 于是就百度百度在百度,完成了通过465端口发送html样式的代码 其实很简单 我也是为了记录 怕以后
Shunnet
2021/06/11
8660
今天给大家带来我的网站发送465端口邮件的代码,带html样式哦
WordPress主题制作(六):制作侧边栏模板sidebar.php
完成了头部和底部的抽离,接下来我们要做的就是从index中抽离侧边栏sidebar。
Yiiven
2022/12/15
1.6K0
使用ValineAdmin完善评论系统
在更换主题后的这一段时间里,博客运行良好,内容我也在不断完善,评论自然是继承原来的 Valine 也运行正常,但是,其实从上个主题开始,我就没有配置邮件的评论系统,所以对于评论的查看,我一直都是登陆 LeanCloud 后台来完成的。当然,默认的邮件提醒我是配置了的,但那个太简陋了,几乎没有使用价值。关于 ValineAdmin,群友早就配置过了,这次终于轮到自己来配一下了。
ZONGLYN
2020/06/29
6350
使用ValineAdmin完善评论系统
大一学生HTML个人网页作业作品——火影忍者动漫7页面带特效带轮播(HTML+CSS+JavaScript)
HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 --- @TOC 一、网页介绍📖 1 网页简介:此作品为学生个人主页网页设计题材,HTML+CSS 布局制作,web前端期末大作业,大学生网页设计作业源码,这是一个不错的网页制作,画面精明,代码为简单学生水平, 非常适合初学者学习使用。 2.网页编辑:网页作品代码简单,可使用任意HTML
IT司马青衫
2022/08/14
1.2K0
大一学生HTML个人网页作业作品——火影忍者动漫7页面带特效带轮播(HTML+CSS+JavaScript)
Fluid -29- 修改 waline 邮箱通知模板
Waline 本身具有邮件通知功能,本文记录修改邮件通知模板的方法,在此感谢小波同学的帮助。 背景 如果我们已经配置好 waline 的邮件通知,可以修改邮箱通知的模板 修改通知模板 修改模板有三种方式: 修改 index.js 文件 修改环境变量 修改 notify.js index.js 官方 github 仓库中示例里有个 index.js 文件,如果是通过官方仓库的 index.js 作为 waline 的入口,那么可以通过修改 index.js 文件来修改邮件通知模板 相关
为为为什么
2023/01/31
8690
使用HTML制作静态网站作业——我的校园运动会(HTML+CSS)
✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (1000套) 】 🧡 程序员有趣的告白方式:【💌HTML七夕情人节表白网页制作 (110套) 】 🌎超炫酷的Echarts大屏可视化源码:【🔰 echarts大屏展示大数据平台可视化(150套) 】 🎁 免费且实用的WEB前端学习指南: 【📂web前端零基础到高级学习视频教程 120G干货分享】 🥇 关于作者
IT司马青衫
2022/08/23
1.5K0
使用HTML制作静态网站作业——我的校园运动会(HTML+CSS)
给Twikoo加个邮箱提醒
我还真没想明白我为什么要这样做(就一个白痴,不过也是快开学了,一开学我就没有时间折腾博客了,乘着精力旺盛再折腾下呗~
NikoDos
2022/03/29
1.3K0
给Twikoo加个邮箱提醒
WordPress网站B2主题会员展示模块
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
小狐狸说事
2022/11/17
1.1K0
WordPress网站B2主题会员展示模块
学生个人网页设计作品 HTML+CSS+JavaScript仿小米商城(8页) 学生个人网页模板 简单个人主页成品 个人网页制作 HTML学生个人网站作业设计代
临近期末,大一新生的各种考试和专业结课作业纷至沓来。什么高数啊、线代啊、C语言、网页设计等,简直让人头大。你还在为网页设计老师的作业要求感到头大?网页作业无从下手?网页要求的总数量太多?没有合适的模板?等等一系列问题。你想要解决的问题,在这篇博文中基本都能满足你的需求, 废话不多说,直接看效果。。 --- <font color='#b44846' size='4px'> ❤</font> 【作者主页——🔥获取更多优质源码】 <font color='#b44846' size='4px'> ❤</
IT司马青衫
2022/08/24
1.5K0
学生个人网页设计作品 HTML+CSS+JavaScript仿小米商城(8页) 学生个人网页模板 简单个人主页成品 个人网页制作 HTML学生个人网站作业设计代
文章内容底部声明代码
<div class="themeauthor"> <fieldset style="border:1px dashed #FF0000;vertical-align:middle;padding:10px;border-top-left-radius:8px;border-top-right-radius:8px;border-bottom-right-radius:8px;border-bottom-left-radius:8px;"> <legend align="center" style=
PHP开发工程师
2021/05/07
1.3K0
【HTML5期末大作业】制作一个简单HTML我的班级网页(HTML+CSS+JS)
✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (1000套) 】 🧡 程序员有趣的告白方式:【💌HTML七夕情人节表白网页制作 (110套) 】 🌎超炫酷的Echarts大屏可视化源码:【🔰 echarts大屏展示大数据平台可视化(150套) 】 🎁 免费且实用的WEB前端学习指南: 【📂web前端零基础到高级学习视频教程 120G干货分享】 🥇 关于作者: 历任研
IT司马青衫
2022/08/10
1.3K0
【HTML5期末大作业】制作一个简单HTML我的班级网页(HTML+CSS+JS)
学生静态HTML个人博客主页【Web大学生网页作业成品】HTML+CSS+JavaScript
✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (1000套) 】 🧡 程序员有趣的告白方式:【💌HTML七夕情人节表白网页制作 (110套) 】 🌎超炫酷的Echarts大屏可视化源码:【🔰 echarts大屏展示大数据平台可视化(150套) 】 🎁 免费且实用的WEB前端学习指南: 【📂web前端零基础到高级学习视频教程 120G干货分享】 🥇 关于作者: 💬历任研发工程
IT司马青衫
2022/08/24
2.2K0
学生静态HTML个人博客主页【Web大学生网页作业成品】HTML+CSS+JavaScript
菜鸡博客开……开……开源了!
因为很多人找我要过博皮源码,所以本宝宝经过深思熟虑,最终决定把自己的源码分享给大家!
attack
2018/09/21
3K0
拖动登录框 HTML+CSS+js
先上效果 代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport"
小丞同学
2021/08/16
5.8K0
推荐阅读
相关推荐
[Web开发]《SpringBoot + Email + Freemarker发送邮件》
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验