MAILTO每个互联网浏览器的最大长度?

时间:2012-11-09 23:17:22

标签: internet-explorer firefox google-chrome opera mailto

更新: 在此问题提前两年,我们提出了一个类似的问题:Effective maximum mailto: body lengths正如Peter O.所指出的那样幸运的是,这两个问题的答案是互补的: - 浏览器在过去两年中发展很多,因此我们可以说这个问题是对另一个问题的更新; - )


规范不限制mailto命令长度:

  1. RFC 6068规范
  2. HTML 4规范(mailto命令是URL)
    (请参阅this SO answerthis SO question的答案和this one的评论)
  3. 因此mailto命令长度取决于互联网浏览器的实现。

    我猜很老的浏览器无法处理超过255个字符的mailto命令。

    但是,现在,内存大小不再是mailto命令长度的问题。

    最常见的 互联网浏览器的mailto最大长度是多少? < / p>

    看看浏览器是否收敛到相同的mailto长度限制应该很有趣。

5 个答案:

答案 0 :(得分:4)

Safari和大多数电子邮件客户端没有硬限制(取决于可用的CPU和RAM)

2015年网络浏览器测试:

  • 的Safari
    • 7.05亿
    • 2分钟
    • Mozilla / 5.0(Macintosh; Intel Mac OS X 10_10_5)AppleWebKit / 601.1.56(KHTML,类似Gecko)版本/ 9.0 Safari / 601.1.56
    • 受16GB RAM的限制
  • 火狐
    • 268435455
    • 20秒
    • Mozilla / 5.0(Macintosh; Intel Mac OS X 10.10; rv:41.0)Gecko / 20100101 Firefox / 41.0
    • 受最大字符串长度的限制
    • 2097132
    • 1秒
    • Mozilla / 5.0(Macintosh; Intel Mac OS X 10_10_5)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 45.0.2454.101 Safari / 537.36
    • 受限制,无需解释
  • IE
    • 2029
    • 5秒
    • Mozilla / 5.0(Windows NT 10.0; WOW64; Trident / 7.0; .NET4.0C; .NET4.0E; rv:11.0),如Gecko
    • 受限制,无需解释

2015电子邮件客户端测试:

  • Mozilla Thunderbird
    • 2097132可在1秒内完成
    • 268435455使用100%CPU 2分钟但无法渲染正文并且无法使用
    • 版本38.3.0
  • SeaMonkey的
    • 2097132可在5秒内完成
    • 268435455长时间使用100%CPU(超过5分钟)
    • 版本2.38
  • Apple Mail
    • 500000可在14秒内完成
    • 2097132长时间使用100%CPU(超过5分钟)
    • 版本8.2
  • Microsoft Outlook
    • 在1秒内修剪到2070
    • 2013版

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上运行的浏览器的最大长度。

  • Chrome 64.0.3282.186上的2042个字符
  • Edge 16.16299上的2046个字符
  • Firefox 58.0上大约32700个字符