11

Outlook 电子邮件是否有一定的字符串大小。我有以下代码给我一个错误

传递给系统调用的数据区域太小

然而,这似乎只发生在我的消息正文大于正常时

document.location.href = "mailto:" + emailAddress + "?subject=my msgs Relief&body=" + escape(message);

如果我要删除代码,那么它不会显示此消息。所以它似乎与电子邮件正文中的字符数有关。请建议。

4

2 回答 2

6

我最近遇到了这个确切的问题。问题是不同的浏览器(和不同的电子邮件客户端)对使用邮件到链接可以在它们之间传递的数据量有限制。

例如,Internet Explorer 中的最大 URL 长度为 2,083 个字符 ( MS KB Link )。如果您的链接的总长度(包括主题、地址和正文)超过此值,您将收到此错误。

为了解决这个问题(因为我们必须支持 IE),我在生成链接后使用了这个 kludge:

var mailto_link = 'mailto:'+addresses+'?subject='+subject+'&body='+body_message;
win = window.open(mailto_link.substr(0,2000),'emailWindow');

这并不完美,但在极少数情况下,用户尝试生成大量通知电子邮件时,他们会首先得到礼貌的警告,期间提醒,并在事件发生后得到通知。

于 2013-10-25T14:45:17.430 回答
4

它可能会失败,因为某些电子邮件客户端不接受空格作为 href 的一部分,因此您需要对它们进行 URI 编码(转义),因此它们变为 %20。

尝试这个:

document.location.href = "mailto:" + emailAddress + "?subject=my%20msgs%20Relief&body=" + escape(message);

于 2013-06-21T20:54:53.243 回答