为多语言MVC网站存储HTML和文本电子邮件模板的最佳选择是什么?
目标是尽可能快地发送电子邮件,以减少用户等待的延迟。
我还认为在服务层发送比Web层好得多。
由于链接是绝对的,我不认为视图的需要是非常有用的,但作为邮政选项的解决方案是什么?或者只是简单地从DB或File中获取HTML字符串,用自定义值替换String标记并发送到IIS SMTP来处理队列?
感谢。
答案 0 :(得分:1)
在我的项目中,我将模板存储在.cshtml文件的服务层中,以使语法高亮显示。我使用每种文化的文件,即TemplateName。[en] .cshtml。我使用Razor engine来呈现模板。效果很好。
答案 1 :(得分:0)
我会建议您使用以下表格结构在数据库中存储电子邮件模板:
CREATE TABLE emailTemplates (
id INT IDENTITY(1, 1),
body VARCHAR(max),
title VARCHAR(max),
lcid INT,
/*and maybe tmplType INT if you have different template types*/
)
允许您简单地选择模板传递Thread.CurrentThread.CurrentCulture.LCID
(或甚至任何所需的culure id)[和tmplType]作为参数[s]来查找所需的模板。您还可以使用管理界面编辑和创建新模板(如果有的话)或将其插入数据库而无需更改任何代码并将其重新部署到服务器。当然,您可以将模板表映射到某些List<your_template_class>
并将其存储在cashe中,因此您不必每次都将其从数据库中删除。
答案 2 :(得分:0)
如果您使用云或任何分布式环境来托管您的应用程序。那么最好的想法是使用服务层来发送数据。因此,您可以使用队列将工作委派给发送节点。它会提升你的表现。关于模板的源代码,您需要考虑如何对模板的格式更改做出反应。我认为最好使用数据库并在服务端缓存它们。