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

时间:2014-10-10 13:26:11

标签: html http servlets content-type

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

我使用Java servlet通过以下标题生成响应(我认为这不重要):

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

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

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

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

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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

https://tools.ietf.org/html/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.\n\nNewlines work too";

window.location = "mailto:?to=" + encodeURIComponent(toaddress)
    + "&subject=" + encodeURIComponent(subject) + "&body="
    + encodeURIComponent(body);

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

然而,除了标准中列出的规范之外,任何规范完全取决于所使用的电子邮件客户端(例如正文HTML吗?)。