繁体   English   中英

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

[英]The data area passed to a system call is too small"

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

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

但是,只有当我的邮件正文大于正常时才会出现这种情况

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

如果我删除代码,那么它不会显示此消息。 因此,它与电子邮件正文中的字符数相关联。 请建议。

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

例如,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');

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

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

试试这个:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM