"mailto"无法处理大量正文内容

5
我正在尝试使用mailto函数在我的Web应用程序中获取Outlook窗口,使用以下代码。 发送邮件 如果bodyText少于约1800个字符,则它可以正常工作。但是,如果正文内容超过1800个字符,则会截断数据。如果正文内容超过1800个字符,Outlook窗口将只显示前1800个字符,并截断其余内容。

这应该有助于解决URL长度限制问题 - https://dev59.com/XHRC5IYBdhLWcg3wFM_W - Xeren Narcy
我无法在 OS X 上使用 Chrome 51 复现此问题。我能够在邮件中使用一个包含 4000 个字符的链接,并且它们都显示出来了。 - Barmar
你是否正确地对请求体文本进行URL编码? - Barmar
@Barmar 是的,我正在使用encodeURIComponent(bodyText)。 - Ramachandra Reddy
这个问题多年来在StackOverflow上被提出了多次,但没有得到令人满意的答案。服务器端的解决方案可能对每个人都可行。 我在这里发布了一个解决方案https://dev59.com/1GAf5IYBdhLWcg3wLACq#74778578 - Vijay Jagdale
显示剩余3条评论
1个回答

3

首先,我需要提及这篇文章,以解释为什么存在URL长度限制。我已经在最新版的Firefox和Outlook 2010上进行了快速测试,使用了以下内容:

<html>
<body>
<form action="mailto:me@me.com">
<textarea name="body"></textarea>
<br/>
<input type="submit" />
</form>
</body>
</html>

在我的情况下,限制是2061个字符,但这将与电子邮件长度相抵触。即使使用POST方法,对我来说结果也是一样的。链接的问题(及其顶部答案)建议从2016年4月起不要依赖超过2000的长度,原因如上所述。
绕过这个问题:
我可以提供几个替代方向。
1. 使用脚本调用Outlook。我不喜欢它(兼容性,安全性),但这可能是ActiveX可能是解决方案的一次机会。 2. 如果目的是预览电子邮件、编辑和发送,则可以考虑编写应用程序从服务器端发送电子邮件的草稿副本。
就个人而言,我会探索第二种方法而不是第一种方法。在这种解决方案中,用户将收到包含草稿消息的电子邮件,他们可以编辑和转发,或将其复制到新电子邮件中。虽然不是最理想的,但它可能符合您的要求。

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