【问题标题】:Server Side Rendering HTML text (write with HTML tags in DB) as effectively html in an email服务器端呈现 HTML 文本(在 DB 中使用 HTML 标记编写)作为电子邮件中的有效 html
【发布时间】:2017-01-25 18:36:30
【问题描述】:

一方面

我在集合中有一个字段will,用户可以在其中保存 html 文本(通过 WYSIWYG 编辑器):它工作正常,用户可以编写/保存一些像这样的字符串 it's<strong>bold</strong> and sometimes <i>italic</i>. 没什么疯狂的..

二手

当用户通过电子邮件发送此字段will(作为emailData 的一部分)并在html 模板中使用meteorhacks:ssr 呈现时,该字段将显示为it's<strong>bold</strong> and sometimes <i>italic</i>.,并带有HTML 标记作为普通文本。

那么,任何人都知道在 html 电子邮件正文中呈现的技巧:“它是 bold,有时是 italic。”?谢谢。


我的代码很复杂,很多const和函数继承,但是除了html渲染之外,它工作正常,最终结构如下:

SSR.compileTemplate('htmlEmail', Assets.getText('replycontact.html'));

var emailData = {
  message: `${message}`,
  will: `${will}`,
  origincontactdate: `${origincontactdate}`,
  contactname: `${contactname}`,
};
        
//send the mail
Email.send({
  to: to,
  from: from,
  subject: subject,
  html: SSR.render('htmlEmail', emailData),
});

【问题讨论】:

    标签: meteor


    【解决方案1】:

    问题在于 Meteor 正在转义 HTML 字符串。

    因此,解决方案是使用 3 个括号 {{{ }}} 而不是 2 - 这里对于 html 模板中的 emailData:而不是 {{will}},使用 {{{will}}}

    问题中的上述代码保持不变。

    来源:https://stackoverflow.com/a/16565529/7281870

    【讨论】:

      【解决方案2】:

      您的数据很可能以 HTML 编码形式保存在数据库中,例如

      <b>
      

      另存为

      &lt;b&gt;
      

      如果是这样,您只需使用 Javascript decodeURI() 函数将其取消编码,您可以在此处阅读更多信息:

      http://www.w3schools.com/jsref/jsref_decodeuri.asp

      所以您的代码将如下所示:

      var emailData = {
        message: `${message}`,
        will: decodeURI(${will}),
        origincontactdate: `${origincontactdate}`,
        contactname: `${contactname}`,
      };
      
      //send the mail
      Email.send({
        to: to,
        from: from,
        subject: subject,
        html: SSR.render('htmlEmail', emailData),
      });
      

      【讨论】:

      • 实际上,&amp;lt;b&amp;gt; 确实保存为&amp;lt;b&amp;gt;,而不是&amp;lt;b&amp;gt;:所以decodeURI() 遗憾地不起作用..
      猜你喜欢
      • 2021-06-03
      • 1970-01-01
      • 2011-10-29
      • 2020-09-18
      • 2020-01-14
      • 1970-01-01
      • 1970-01-01
      • 2012-07-31
      • 2015-09-25
      相关资源
      最近更新 更多