2009-11-20 160 views
2

我想使用HTML模板发送HTML电子邮件。 我想从该HTML模板中替换一些值。 任何想法如何实现这一目标?.NET C#电子邮件:使用电子邮件模板

+0

此问题已在此处回答:[http://stackoverflow.com/questions /620265/can-i-set-up-html-email-templates-in-c-on-asp-net](http://stackoverflow.com/questions/620265/can-i-set-up-html-电子邮件模板在C - 在ASP网“http://stackoverflow.com/questions/620265/can-i-set-up-html-email-templates-in-c-on-asp-net” ) – 2009-11-20 14:50:01

回答

2

在{0},{1}等HTML内容中放置占位符,并使用String.format()来替换它。

5

如果你的需求是复杂得多,可以用@ Anuraj的建议,那么我建议你看XSLT来实现 - 您打包数据作为XML的一个疙瘩,改造XML转换成任何(在这种情况下,HTML)使用XSLT模板。

支持.NET中的这种转变是优秀的,一旦你已经摆脱了最初的挑战(XSLT是不同),你将增加一个非常有能力的工具集,您的工具包。

3
string emailTemplate = @" 
Hi, ##USERNAME## 
bla bla bla dear ##USERNAME## bla bla bla! 

Best regards, 
##MYNAME##"; 

string email = emailTemplate 
    .Replace("##USERNAME##", userName) 
    .Replace("##MYNAME##", myName); 
1

DotLiquid是另一种选择。您可以将类模型中的值指定为{{user.name}},然后在运行时您提供该类中的数据以及带有标记的模板,并将合并这些值。好的是这些是“安全的”,以便创建模板的用户不会崩溃您的系统或编写不安全的代码: http://dotliquidmarkup.org/try-online