css HTML模板显示在电子邮件正文中

xvw2m8pv  于 2022-12-27  发布在  其他
关注(0)|答案(1)|浏览(107)

我们有一个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

如何使此模板标记在电子邮件正文中不可见?

7eumitmz

7eumitmz1#

电子邮件客户端只会看到整个HTML,不像浏览器,它 * 不会 * 隐藏<template>标签。因此,您需要编写代码,在设置Message对象的Body属性之前删除此“template”元素。

相关问题