更新: 在此问题提前两年,我们提出了一个类似的问题:Effective maximum mailto: body lengths正如Peter O.所指出的那样幸运的是,这两个问题的答案是互补的: - 浏览器在过去两年中发展很多,因此我们可以说这个问题是对另一个问题的更新; - )
规范不限制mailto
命令长度:
mailto
命令是URL)因此mailto
命令长度取决于互联网浏览器的实现。
我猜很老的浏览器无法处理超过255个字符的mailto
命令。
但是,现在,内存大小不再是mailto
命令长度的问题。
最常见的 互联网浏览器的mailto
最大长度是多少? < / p>
看看浏览器是否收敛到相同的mailto
长度限制应该很有趣。
答案 0 :(得分:4)
Safari和大多数电子邮件客户端没有硬限制(取决于可用的CPU和RAM)
2015年网络浏览器测试:
2015电子邮件客户端测试:
2017年更新
Chrome 61仍可在macOS(16 GB RAM)上使用2097132长度;
navigator.userAgent;
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
location.href='mailto:?body='+'a'.repeat(2097132);
根据Windows上的@Chloe(32 GB RAM),它仅限于1800;
"Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
答案 1 :(得分:2)
仅供参考,我发现谷歌浏览器的最新版本(23.0.1271.95)只允许我生成一个最大长度为的邮件:
1910个字符
答案 2 :(得分:1)
Firefox不会对系统可用内存以外的URL长度施加任何限制,因此在调用进程时,您必须查看操作系统对参数最大长度的限制。
此外,您可以将Web应用程序设置为mailto URI方案处理程序,在这种情况下,限制取决于接受请求的服务器。 Firefox附带了一些选项,如Gmail和Yahoo!邮件,您可以使用navigator.registerProtocolHandler注册自己的处理程序。如果您感到好奇,请打开:config并过滤“gecko.handlerService.schemes”以查看您在浏览器中配置的Web应用程序处理程序。
我不能说其他浏览器,但一旦你开始依赖这么多不同的变量(浏览器,可用内存,操作系统,服务器),最好尝试不同的策略。
答案 3 :(得分:1)
不幸的是,浏览器和各种客户都非常松散地遵守RFC文档,但要回答您的问题,您可以查看this answer
答案 4 :(得分:1)
如果我使用JavaScript函数构建mailto URL(带有动态标题和正文),则调用window.open(url)启动默认的EMail客户端,此URL的最大长度似乎要短得多。如果URL太长,则不会激活电子邮件客户端。
以下是适用于仅在Windows上运行的浏览器的最大长度。