【问题标题】:how to add html in a email body using javascript?如何使用 javascript 在电子邮件正文中添加 html?
【发布时间】:2012-06-05 14:44:40
【问题描述】:

我必须向用户发送确认电子邮件。 在点击链接时,我想打开他们的默认电子邮件客户端并将 HTML 添加到正文标记中。

var subject = Your transaction No: +': ' + $('#confirmationNumber').text()+ ' is confirmed';
var emailBody = $('#confirmation').html();
$(this).attr('href','mailto:'+userEmail+'&subject=' + subject +'&body='+ emailBody); 

它希望 'emailBody' 中的 HTML 作为 HTML 附加到正文中。但它会向我显示整个 HTML 标记。

有什么方法可以在正文中附加 HTML 吗?

【问题讨论】:

    标签: javascript html-email


    【解决方案1】:

    答案很短但很不幸:

    没有。

    使用mailto:-links 时,只能指定文本,不能指定 HTML。即使用户的邮件客户端使用 HTML 编写邮件消息,您的正文文本也只会作为文本插入。

    您无法通过网页对此进行任何操作。

    【讨论】:

      【解决方案2】:

      使用

      var emailBody = $('#confirmation').text();
      

      【讨论】:

      • 是的,我用过...但它会将所有文本附加到电子邮件正文的一行中...我想要一些粗体标签和换行符。
      • 正文必须是 'text/plain',不能在其中使用 HTML 标签。
      【解决方案3】:

      首先,对您的代码进行一些修复:

      var subject = 'Your transaction No: ' + $('#confirmationNumber').text() + ' is confirmed',
          emailBody = $('#confirmation').html();
      $(this).attr('href', 'mailto:' + userEmail + '&subject=' + subject + '&body=' + encodeURI(emailBody));
      
      • 使用单个 var 关键字并用逗号分隔变量
      • subject 被严重连接

      接下来,如果您想在链接中传递 html 代码,您必须对特殊字符进行编码,encodeURI() 就是这样做的。


      糟糕,编码的正文在电子邮件客户端中不被视为 html。 我google了一会儿,好像传不正确,不能发消息而不是打开客户端吗?

      【讨论】:

      • 1stly 抱歉主题连接不好,我已经输入了那个。和:(对于hte encodeURI。这是客户的要求。但是你是对的..我会把它作为消息发送..
      猜你喜欢
      • 2014-04-24
      • 2021-03-28
      • 2010-12-20
      • 1970-01-01
      • 2011-07-11
      • 2017-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多