我想从Javascript Web应用程序创建一封电子邮件.我完全了解这方面的许多问题(例如,使用Chrome打开Outlook HTML).典型答案存在问题:
Mailto:link:这将允许您创建一个电子邮件,但只能使用纯文本(无HTML),并且不允许附件.
Activex:仅限IE,我的应用程序也需要在Firefox和Chrome中运行.允许使用ActiveX的FF和Chrome插件存在安全隐患,而且似乎有问题.
服务器端通过SMTP发送:电子邮件不会最终出现在用户的"已发送"文件夹中.加上障碍让用户在浏览器中编辑HTML并附加文件.
创建一个Outlook .MSG文件:似乎没有库,也没有关于这样做的书面文章.显然,文件格式实际上嵌入了整个FAT文件存储系统.
许多其他SO问题和我之间的主要区别:
我无法成为第一个面对此问题的Web应用程序开发人员,但我无法找到商业或开源的解决方案.
更新:
我使用了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'; …Run Code Online (Sandbox Code Playgroud)