在电子邮件中预填HTML内容

5

我一直在开发一个项目,其中有一个功能是当我点击一个按钮时,Outlook会打开,变量中存储的相应值将出现在邮件正文中。我尝试了以下代码:

<html>
<head>
    <title>Email This Code Snippet</title>
    <script language="javascript">
    function TriggerOutlook()
    {         
        var sub = "Hi friend";
        var bodycont = "<html><body>welcome</body></html>";
        var body = escape(bodycont + String.fromCharCode(13));        
        window.location.href = "mailto:sakthivela@yahoo.com"
                             + "?body=" + body
                             + "&subject=" + sub
        ;                
    }    
</script>
</head>
<body>
<form id="form1">
    <a href="#" onclick="TriggerOutlook()">Email this Codesnippet</a>
    <input type="text" name="txtbody" id="txtbody">
</form>
</body>
</html>

但邮件正文中的<html><body>welcome</body></html>是纯文本,而不是HTML。我该如何将其格式化为HTML?

2个回答

5
您无法做到。 邮件规范 无法控制浏览器调用的电子邮件客户端。

这完全取决于Outlook或其他邮件客户端的默认设置。如果用户已将应用程序默认设置为以HTML格式撰写邮件,则邮件将以此格式显示。否则,就是纯文本。再次强调...用户决定,而不是mailto行。 - Jarret Hardie
“body=”仅适用于纯文本已经不可靠。为了可靠和灵活的邮件发送,请使用服务器端脚本。 - bobince

1

有趣的是,当Thunderbird是默认的系统邮件程序时,您的代码对我来说可以原封不动地工作。显然,Thunderbird聪明到注意到正文以<html>开头并切换到HTML邮件模式。

乍一看似乎要让Outlook表现类似,您可以尝试在电子邮件中设置Content-Type标题为"text/html"。但是,使用mailto时我不知道如何实现这一点,因为您无法控制标题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接