所以我正在编写这个EXE来处理退款,当工作完成后,我们会发送一封电子邮件给用户列表,可能是这样的:
不要回复
退款处理已完成。 N退款已成功处理。我们遇到了N个错误。请查看http://whatever.url以获取详细报告。
谢谢,
电脑
不要回复
所以,我们不是在谈论在这里发布数百封电子邮件,只是每天发送一封相关信息的电子邮件。这封电子邮件不太可能被修改,也绝不会被非技术人员修改过。我该如何存储并将模板处理到电子邮件中? C#String.Format样式有{0}和{1}等? XML / XSLT(看起来很麻烦)?我是否将模板存储在App.config中或将其放入数据库或其他不同的地方?
StackOverflow之前我做过什么? :)
答案 0 :(得分:16)
我会采取简单的方法。我假设你想在这里发送一封HTML邮件。
我建议您创建一个HTML文件,其中包含您希望邮件的外观。用#COMPANYNAME#等替换所有名称/变量。保存文件并在Visual Studio中右键单击您的项目。转到属性然后资源。现在将HTML文件拖到资源中并给它一个合适的名称(这里:MyMailTemplate)。
现在,从您的代码中,您可以从Properties.Resources.MyMailTemplate中引用它。您可以将其用作字符串。将#PARAMETER#文本替换为实际值。
完成且易于编辑!
答案 1 :(得分:0)
我通常将模板存储在带有自定义占位符标记的文本文件中,尽管您可以对占位符使用c#String.Format样式。我在app.config中引用文件名,然后我可以加载文本模板,替换标记并发送电子邮件。
这使一切变得非常简单,并且可以在不重新编译的情况下更新电子邮件文本。