发送邮件使用html模板的实现的大致思路

Posted mingqi-420

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了发送邮件使用html模板的实现的大致思路相关的知识,希望对你有一定的参考价值。

   客户最近有一个需求,大致的意思是提供一个 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、声明发送邮件的类,将邮件所需的信息在该类中补全,然后就可以用上面提供的方法发送定义好的模板了

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

以上是关于发送邮件使用html模板的实现的大致思路的主要内容,如果未能解决你的问题,请参考以下文章

在服务器上使用python自动获取zabbix上图形并发送邮件

python接口自动化(三十)--html测试报告通过邮件发出去——中(详解)

flask 电子邮件进阶实践-用模板发送163邮件

使用 Django 在 HTML 电子邮件模板中将图像作为内联附件发送

重学Springboot系列之邮件发送的整合与使用

springboot自定义文本/附件/html模板邮件发送