gpt4 book ai didi

javascript - 使用 Javascript 在 Microsoft Outlook 中创建 HTML 电子邮件

转载 作者:可可西里 更新时间:2023-11-01 01:46:47 66 4
gpt4 key购买 nike

我想从 Javascript 网络应用程序创建电子邮件。我完全知道关于这个的许多 SO 问题(例如 Open Outlook HTML with Chrome )。典型答案有问题:

  1. Mailto: 链接:这将允许您创建电子邮件,但只能是纯文本(无 HTML)并且不允许附件。

  2. Activex:仅限 IE,我的应用程序也需要在 Firefox 和 Chrome 中运行。允许 ActiveX 的 FF 和 Chrome 插件是安全隐患,而且似乎有问题。

  3. 服务器端通过 SMTP 发送:电子邮件最终不会出现在用户的“已发送”文件夹中。加上允许用户在浏览器中编辑 HTML 和附加文件的障碍。

  4. 创建一个 Outlook .MSG 文件:似乎没有库,也没有关于如何做的文章。显然,该文件格式实际上嵌入了整个 FAT 文件存储系统。

许多其他 SO 问题和我的问题之间的主要区别:

  • 确实可以访问客户端机器,所以我可以安装帮助应用程序或加载项,根据需要更改设置等。
  • 接口(interface)不需要实际发送邮件,它只需要为用户进行设置。
  • 我还需要能够为电子邮件提供 JS 附件(例如 PDF)。

我不是第一个遇到这个问题的网络应用程序开发人员,但我无法找到商业或开源解决方案。

更新:

我使用了 EML 文件方法,到目前为止效果很好。这是我创建和触发它的 JS 代码:

var emlContent = "data:message/rfc822 eml;charset=utf-8,";
emlContent += 'To: '+emailTo+'\n';
emlContent += 'Subject: '+emailSubject+'\n';
emlContent += 'X-Unsent: 1'+'\n';
emlContent += 'Content-Type: text/html'+'\n';
emlContent += ''+'\n';
emlContent += htmlDocument;

var encodedUri = encodeURI(emlContent); //encode spaces etc like a url
var a = document.createElement('a'); //make a link in document
var linkText = document.createTextNode("fileLink");
a.appendChild(linkText);
a.href = encodedUri;
a.id = 'fileLink';
a.download = 'filename.eml';
a.style = "display:none;"; //hidden link
document.body.appendChild(a);
document.getElementById('fileLink').click(); //click the link

最佳答案

MSG 文件格式为 documented ,但这肯定不好玩......为什么不创建 EML (MIME) 文件?

建议使用 EML (MIME) 格式。根据 OP,他们考虑了 MSG 文件格式(#4),但由于其复杂性和缺乏处理该格式的 JS 库而感到沮丧。如果考虑 MSG 文件,MIME 是更好的选择 - 它是基于文本的,因此不需要特殊的库来创建它。 Outlook 将能够像打开 MSG 文件一样轻松地打开它。

要确保 EML 邮件被 Outlook 视为未发送的邮件,请将 X-Unsent MIME header 设置为 1。


最简单的 EML 文件如下所示:

To: Joe The User <joe@domain.demo>
Subject: Test EML message
X-Unsent: 1
Content-Type: text/html

<html>
<body>
Test message with <b>bold</b> text.
</body>
</html>

关于javascript - 使用 Javascript 在 Microsoft Outlook 中创建 HTML 电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27951843/

66 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com