客户最近有一个需求,大致的意思是提供一个 word文档,让其作为一个模板,在发送邮件的时候能够实现按照这个模板的样式和内容,替换其中 的一些字段,作为邮件的内容发给收件人。这个需求最大的问题就是在于这些需要替换的变量的存储方式,是在数据库中存储还是在xml中存储,或者是其他的存储方式,我最终选择了在数据库中存储,因为这些变量基本比较固定,并且后期维护起来比较容易。下面是大致的实现的步骤

1、在数据库中新建一个存储附件的表MailTemplate,包含主键,模板名称,描述、模板url等字段,

2、将客户给的word转换成html格式的文件,记得调整html的编码格式为charset=utf-8",否则会出现乱码 在html文件中编辑样式、变量替换标识,然后将html放置在固定的文件夹中,在MailTemplate表中添加一条记录

3、在数据库中添加变量表MailTemplate_value,包含主键、MailTemplateID,变量名称、变量值、排序值、描述等字段

4、在模板变量表中添加对应的MailTemplateID,变量名称,变量值,排序值等信息(排序值用来和html模板中变量的顺序保持一致),

5、从数据库中取对应的变量名称及对应的变量值,后台先取到html文件的内容,然后用raplace方法将对应的变量进行替换,替换后的文本作为文件的正文内容

6、声明发送邮件的类,将邮件所需的信息在该类中补全,然后就可以用上面提供的方法发送定义好的模板了

优点该思路使变量的维护比较简单,可以直接在前台进行操作,可以定义多个模板,但是对需要替换变量的顺序要求比较高,不能随意的定义变量的顺序,而且如果需要保留一个模板的历史变量的话,这种思路就无法满足了,需要额外的一些工作来满足这种需求。

原文:https://www.cnblogs.com/mingqi-420/p/10877189.html

html发送邮件自动模板,发送邮件使用html模板的实现的大致思路相关推荐

  1. java服务器发送邮件_服务器通过模板发送邮件java代码

    //文件读取类 public class TemplateFileRead { private String content= null; public TemplateFileRead() { } ...

  2. java使用自定义HTML模板发送邮件——记录开发篇1

    java使用自定义HTML模板发送email VO接收参数 @Data public class EmailVo {@ApiModelProperty("收件人列表")@NotNu ...

  3. Vim 自动文件头注释与模板定义

    Vim 自动文件头注释与模板定义 在vim的配置文件.vimrc添加一些配置可以实现创建新文件时自动添加文件头注释,输入特定命令可以生成模板. 使用方法 插入模式输入模式输入seqlogic[Ente ...

  4. CREO:CREO软件中如何设置和使用各种标准模板文件(asm组件模板、drw工程图模板、prt零件模板)、零件模板的定制、创建零件自动产生绘图、绘图模板的定制之详细攻略

    CREO:CREO软件中如何设置和使用各种标准模板文件(asm组件模板.drw工程图模板.prt零件模板).零件模板的定制.创建零件自动产生绘图.绘图模板的定制之详细攻略 目录

  5. Outlook中将发送邮件自动CC给自己

    Outlook中将发送邮件自动CC给自己或指定邮箱 在日常生活中,我们经常要将发送的邮件CC给自己一份,以便检查和后续的追加回复,在Microsoft Office Outlook中可以直接通过创建新 ...

  6. 台达,AS228T,plc程序模板和触摸屏程序模板,目前6个总线伺服,采用CANOPEN,适用于运动轴控制,程序可以在自动的时候暂停进行手动控制

    Delta/台达,AS228T,plc程序模板和触摸屏程序模板,目前6个总线伺服,采用CANOPEN,适用于运动轴控制,程序可以在自动的时候暂停进行手动控制,适用于一些中大型设备,可以防止某个气缸超时 ...

  7. 三菱,FX3U,plc程序模板和触摸屏程序模板,适用于运动轴控制,程序可以在自动的时候暂停进行手动控制

    三菱,FX3U,plc程序模板和触摸屏程序模板,适用于运动轴控制,程序可以在自动的时候暂停进行手动控制,适用于一些中大型设备,可以防止某个气缸超时时,处于自动模式,能够轻松处理,处理完成后,恢复原来的 ...

  8. 【Axure高保真原型】自动更新数据的卡片模板

    今天更新了能自动循环更新数据的卡片模板 [原型效果] [Axure高保真原型]自动更新数据的卡片模板 [原型预览及下载地址] https://axhub.im/ax9/b8494994420eef04 ...

  9. python批量发送邮件_Python3+Excel实现自动批量发送邮件功能

    开篇惯例,美女镇楼!! 文末有美女出处 前两天有个网友给我私信说想让我帮他实现一个自动批量定时点对点发送邮件的功能.闲聊之下才知道该网友的为何亟需上述功能,他的需求是这样的: 1.从excel文件中读 ...

  10. ecshop 邮件模板 html,ecshop邮件模板默认数据与恢复.doc

    PAGE / NUMPAGES ECSHOP邮件模板默认数据与恢复 ecshop模板堂() ecshop邮件模板是给客户发送邮件的格式,有些地方用变量表现.有时候客户误操作的时候会删除某些变量导致邮件 ...

最新文章

  1. BUTTONS V. 2.0.0——CSS按钮库
  2. java常见类关系(UML建模)
  3. Marshal.Copy 之 startIndex 参数的含义
  4. Python中shuffle() 函数的作用及用法
  5. Codeforces Round #686 (Div. 3) E. Number of Simple Paths 基环树 + 容斥
  6. JPA 2.1和Java EE 7中的JPQL增强功能(第1部分– JOIN ON)
  7. 证明人工智能的数据只要足够多,就可以接近理想效果
  8. Cisco交换机设置管理IP
  9. Git拉代码(https以及ssh两种)
  10. java web 自己开发NAS个人网盘、视频网站视频播放服务端大视频文件处理逻辑解决方案和思路
  11. vs2013配置qt5.7.0
  12. 语音信号处理-概念(三):FBank特征、MFCC特征(梅尔频率倒谱系数)【由于二者蕴含信息较少,已不适合这个大数据时代。但有些任务由于其本身的特殊性质,还是会使用到MFCC谱。如情感语音转换任务】
  13. BJ模拟 Different Trips【树上后缀数组】
  14. 威5创非凡,领航再出击 | 新华三集团成立五周年庆
  15. 记一次华为2288H V5服务器安装Ubuntu18.04操作系统(详细流程)
  16. Word2016加载MathType打开时显示“安全警告 宏已被禁用”解决办法
  17. cv2.imread
  18. C++类的成员函数(在类外定义成员函数)
  19. Google Earth Engine(GEE)——NDWI水体阈值的监测
  20. 看了这个你的下载速度还会慢???

热门文章

  1. 多线程的应用场景以及其实现方式
  2. 纳入3C强制性认证的产品目录
  3. 电音制作宿主软件-Ableton Live Suite v11.0.5 x64 WiN
  4. 车道线检测识别 [园区道路线检测识别](开源github,欢迎stared)
  5. vivado + zedboard 初体验
  6. 【Linux】特别篇--SMBus 协议
  7. 小米网关php,小米网关接入问题,已解决
  8. HTML555基础——css入门
  9. 人工智能(crawler)—— 爬虫综合
  10. 前端 js 邮箱正则判断 (支持多个邮箱判断)