【问题标题】:What is the maximum practical length of a mailto URL?mailto URL 的最大实际长度是多少?
【发布时间】:2012-05-20 03:35:22
【问题描述】:

在我的网页中,我向 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

这是 2354 个字符长。

Other answers 建议超过 2000 个字符的 URL 是个坏主意,因为某些浏览器可能会遇到这些问题。但是浏览器是否以任何方式解析了 mailto URL,或者它们是否立即传递给默认邮件工具?如果交给他们,是否有人掌握各种邮件工具(尤其是 Outlook)可以处理的 mailto URL 长度的数据?

【问题讨论】:

  • 这是一个有趣的链接 - 命令行限制是我没有考虑过的(尽管在 XP 之后它们被指定为 8191)。

标签: mailto


【解决方案1】:

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

2015 年网络浏览器测试:

  • 野生动物园
    • 705000000
    • 2 分钟
    • Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/601.1.56 (KHTML, like Gecko) Version/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, like 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) 像壁虎
    • 限制不解释

2015 年电子邮件客户端测试:

  • Mozilla 雷鸟
    • 2097132 1 秒工作
    • 268435455 使用 100% CPU 2 分钟,但未能渲染主体,无法使用
    • 版本 38.3.0
  • 海猴
    • 2097132 5 秒内工作
    • 268435455 长时间使用 100% CPU(超过 5 分钟)
    • 2.38 版
  • 苹果邮件
    • 500000 件在 14 秒内工作
    • 2097132 长时间使用 100% CPU(超过 5 分钟)
    • 8.2 版
  • 微软 Outlook
    • 在 1 秒内调整到 2070
    • 2013 版

【讨论】:

    猜你喜欢
    • 2010-11-20
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 2015-11-24
    • 2011-09-22
    • 2016-07-13
    • 2014-07-22
    相关资源
    最近更新 更多