2012-11-02 77 views
11

是否有Outlook电子邮件某些字符串大小。我有以下的代码,给我一个错误传递给系统调用的数据区域太小,”

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

然而,这似乎只当我的消息体越大则正常

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

如果我删除代码,那么它没有显示此消息出现。所以它接近它与电子邮件正文中的字符数量有关。请建议。

+0

请提供代码,其中产生'message' – LuigiEdlCarno

+0

是否可以,您追加到您的字符串的任何值都是'null'? – LuigiEdlCarno

+0

请提供完整的HTML和JS。你可以在这里粘贴你的代码:http://jsfiddle.net/ – maxwell

回答

4

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

试试这个:

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

6

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

例如,Internet Explorer中的最大URL长度为2,083个字符(MS KB Link)。如果包括主题,地址和主体在内的链接总长度超过此长度,则会发生这种错误。

为了解决这个问题(因为我们要支持IE),我用这个杂牌生成我的链接之后:

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

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

相关问题