mailto:链接的& body部分中的文本有最大长度。根据我的一位同事的说法,W3C将限制发布为256(尽管如此,我没有提供支持的链接)。
我们在电子邮件和网页中嵌入了mailto:links,并成功使用了超过256个字符。但是,在某一点之后,电子邮件客户端和浏览器开始剥离并拒绝打开链接。
我想知道以下允许的实际最大长度:
邮件客户:
浏览器:
感谢您收到的任何和所有号码。
答案 0 :(得分:27)
标准没有定义最大长度,将实现留给浏览器和邮件客户端(参见IETF RFC 2368)。
Microsoft产品确实设置了限制:
其他浏览器可能会超出合理的电子邮件正文的长度。 iPhone没有文档限制,但可以使用最多1MB的文本。
支持数据网址的现代浏览器(IE< 9以外的所有内容)应该没问题。
答案 1 :(得分:11)
对于使用JS控制台的浏览器,这是一个简单的测试:
for (var i=2014; i>1600; i--) {var good=1; try {location.href='mailto:?body='+'a'.repeat(i)} catch (e) {good=0;} if (good==1) {console.log(i+13);break;}}
(13的长度为mailto:?body=
。)
在Firefox 32.0.3上,这会产生2008(体长1995)。在Thunderbird 31.2.0上,所有1,995个字符都会成为新电子邮件的主体。
Some say it's mainly OS-setting-dependent但至少在Windows上,我找不到任何与mailto
相关的注册表项,其数字接近2,000。
答案 2 :(得分:1)
我刚刚从Wolfram Mathematica到Microsoft Outlook进行了实验。它适用于31888或更短的字符串长度。这是我用于此实验的代码:
Table[ToString@RandomInteger[{0, 9}], 31433] //
Partition[#, UpTo[80]] & //
Map[StringJoin] //
StringRiffle[#, "\n"] & //
"mailto:xxxxxxx.xxxxxxx@xx.com?subject=Testing out mailto!&body="<> # & //
Echo[#, "Total String Length", StringLength] & //
SystemOpen
并输出31888作为总字符串长度。如果将31433加1,它将停止工作。