mailto URL的最大实际长度是多少?

dum*_*dad 3 mailto

在我的网页中,我向WCF服务发出Ajax请求.如果服务抛出错误,那么将在JSON中传回.然后,JavaScript错误处理程序会显示一个隐藏的div,其中包含一个预先填充了我的详细信息的mailto URL,以便团队成员(这是一个小型内部应用程序)可以向我发送包括堆栈跟踪在内的错误.以下是测试运行的结果URL示例:

mailto:tttttttt@mmmmmmmmm.com?subject=potential%20seed%20save%20failed&body=Potential%20seed%20URL%20=%20unknown%0DResponse%20%3A%20%7B%22ExceptionDetail%22%3A%7B%22HelpLink%22%3Anull%2C%22InnerException%22%3Anull%2C%22Message%22%3A%22testing%22%2C%22StackTrace%22%3A%22%20%20%20at%20SavePotentialSeedSearches.WCFService.StorePotentialSeed(String%20url%2C%20String%20name)%20in%20C%3A%5C%5CTFS%5C%5CProjects%5C%5CSeeds%5C%5CPreliminaries%5C%5CSavePotentialSeedSearches%5C%5CWCFService.svc.cs%3Aline%2021%5Cu000d%5Cu000a%20%20%20at%20SyncInvokeStorePotentialSeed(Object%20%2C%20Object%5B%5D%20%2C%20Object%5B%5D%20)%5Cu000d%5Cu000a%20%20%20at%20System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object%20instance%2C%20Object%5B%5D%20inputs%2C%20Object%5B%5D%26%20outputs)%5Cu000d%5Cu000a%20%20%20at%20System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc%26%20rpc)%5Cu000d%5Cu000a%20%20%20at%20System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc%26%20rpc)%5Cu000d%5Cu000a%20%20%20at%20System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc%26%20rpc)%5Cu000d%5Cu000a%20%20%20at%20System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean%20isOperationContextSet)%22%2C%22Type%22%3A%22System.ArgumentException%22%7D%2C%22ExceptionType%22%3A%22System.ArgumentException%22%2C%22Message%22%3A%22testing%22%2C%22StackTrace%22%3A%22%20%20%20at%20SavePotentialSeedSearches.WCFService.StorePotentialSeed(String%20url%2C%20String%20name)%20in%20C%3A%5C%5CTFS%5C%5CProjects%5C%5CSeeds%5C%5CPreliminaries%5C%5CSavePotentialSeedSearches%5C%5CWCFService.svc.cs%3Aline%2021%5Cu000d%5Cu000a%20%20%20at%20SyncInvokeStorePotentialSeed(Object%20%2C%20Object%5B%5D%20%2C%20Object%5B%5D%20)%5Cu000d%5Cu000a%20%20%20at%20System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object%20instance%2C%20Object%5B%5D%20inputs%2C%20Object%5B%5D%26%20outputs)%5Cu000d%5Cu000a%20%20%20at%20System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc%26%20rpc)%5Cu000d%5Cu000a%20%20%20at%20System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc%26%20rpc)%5Cu000d%5Cu000a%20%20%20at%20System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc%26%20rpc)%5Cu000d%5Cu000a%20%20%20at%20System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean%20isOperationContextSet)%22%7D
Run Code Online (Sandbox Code Playgroud)

这是2354个字符长.

其他答案表明,超过2000个字符的URL是一个坏主意,因为一些浏览器可能会与它们斗争.但是,是否可以通过浏览器以任何方式解析mailto URL,还是将它们立即传递给默认邮件工具?如果他们被交给,有没有人有关于各种邮件工具(特别是Outlook)可以处理的mailto URL长度的数据?

use*_*275 5

如前所述这里 -是的浏览器将解析URL发送之前- Safari和大多数电子邮件客户端都没有硬性限制(取决于可用的CPU和RAM上)

2015年Web浏览器测试:

  • 苹果浏览器
    • 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秒
    • 像Gecko一样的Mozilla/5.0(Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; rv:11.0)
    • 限制没有解释

2015邮件客户端测试:

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