EML文件在浏览器中下载,而不是与电子邮件应用程序联机打开



我的目标是向服务器发送请求,并通过响应(EML格式)打开Outlook和Thunderbird,用户可以在那里编辑电子邮件文本并将其发送出去。

我使用Javaservlet生成具有以下标题的响应(我认为这不重要):

    Content-Type: message/rfc822
    Content-Disposition: attachment; filename="email.eml"

问题是浏览器会下载文件,而不是直接在浏览器中打开它。我试过

 Content-Disposition: inline; filename="email.eml"

但也有同样的问题。我用IE10和Chrome 38进行了测试,两者都有类似的行为。

如果用户点击下载的文件,电子邮件应用程序会正确打开,他们可以发送电子邮件,但下载的文件仍在磁盘上,会产生大量垃圾。

有什么想法吗?

我能想到的唯一替代解决方案是使用mailto协议。

https://www.rfc-editor.org/rfc/rfc2368

Mailto允许您指定常用的电子邮件字段,如正文、主题、发送地址等。

要自动打开电子邮件,请使用以下JavaScript:

// Setting these here for the sake or readability.
var toaddress = "email@address.com";
var subject = "Subject Line";
var body = "Message contents here.nnNewlines work too";
window.location = "mailto:?to=" + encodeURIComponent(toaddress)
    + "&subject=" + encodeURIComponent(subject) + "&body="
    + encodeURIComponent(body);

使用它,您可以修改servlet以返回主题、正文和AJAX调用的地址,并在返回后执行上面的代码片段。

然而,对此持谨慎态度,因为标准中列出的任何规范都完全取决于所使用的电子邮件客户端(例如,正文HTML?)。

最新更新