我们有一个HTML文件保存为DB中的字符串。这个html有一个模板标签“OrderProductsDetails”在里面,我们有特殊的方法来替换每个占位符,{{var}}或{{%var}},与其对应的值。
<!DOCTYPE html>
<html>
<body>
<template id="OrderProductsDetails">
Product: {{%Name}} <br/>
Quantity: {{%Quantity}} <br/>
Amount: {{%TotalCost}}<br/>
</template>
<b> Order details: </b> <br/>
Order Id: {{OrderId}} <br/>
Order time: {{OrderCreatedAt}} <br/>
Order type: {{OrderSide}} <br/>
<b>Products details:</b> <br/>
{{OrderProductsDetails}} <br/>
</body>
</html>
此html文件在浏览器中正常显示。即,未显示模板标记。
但是,当尝试将此文件作为电子邮件正文发送时,使用System .NET.Mail.MailMessage会出现问题:
MailMessage message = new MailMessage(from, to)
{
Body = MyHtmlFileFromDB,
IsBodyHtml = true,
BodyEncoding = System.Text.Encoding.UTF8,
Subject = "Temp email",
SubjectEncoding = System.Text.Encoding.UTF8
};
电子邮件正文在电子邮件顶部显示模板内容,如下所示:
Product: {{%Name}}
Quantity: {{%Quantity}}
Amount: {{%TotalCost}}
Order details:
Order Id: 2850
Order time: 12/25/2022 11:46:15 AM
Order type: Buy
Products details:
Product: prodddd
Quantity: 1
Amount: 40,679.050
如何使此模板标记在电子邮件正文中不可见?
1条答案
按热度按时间7eumitmz1#
电子邮件客户端只会看到整个HTML,不像浏览器,它 * 不会 * 隐藏
<template>
标签。因此,您需要编写代码,在设置Message对象的Body
属性之前删除此“template”元素。