Какова максимальная практическая длина URL-адреса mailto?

На моей веб-странице я делаю запрос Ajax к службе WCF. Если служба выдает ошибку, она передается обратно в JSON. Затем обработчик ошибок JavaScript показывает скрытый div с URL-адресом mailto, предварительно заполненным моими данными, чтобы члены команды (это небольшое внутреннее приложение) могли отправить мне сообщение об ошибке, включая трассировку стека. Вот пример URL-адреса, полученного в результате тестового запуска:

mailto:[email protected]?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 символа.

Другие ответы предполагают, что URL-адреса длиной более 2000 символов - плохая идея, поскольку некоторые браузеры могут с ними бороться. Но анализируются ли каким-либо образом URL-адреса mailto браузером или они сразу же передаются почтовому инструменту по умолчанию? Если они переданы, есть ли у кого-нибудь данные о длине URL-адресов mailto, которые могут обрабатываться различными почтовыми инструментами (и, в частности, Outlook)?


person dumbledad    schedule 11.05.2012    source источник
comment
проверьте этот forums.asp.net/t/1413986.aspx/1   -  person Sachin Kainth    schedule 11.05.2012
comment
Это интересная ссылка - ограничения командной строки - это то, что я не учел (хотя после XP они указаны как 8191).   -  person dumbledad    schedule 11.05.2012


Ответы (1)


Как отмечено здесь - да, браузер будет анализировать URL-адрес перед его отправкой. - Safari и большинство почтовых клиентов не имеют жесткого ограничения (зависит от доступного процессора и оперативной памяти)

Тестирование веб-браузера 2015 г.:

  • Safari
    • 705000000
    • 2 минуты
    • Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/601.1.56 (KHTML, например Gecko) Version/9.0 Safari/601.1.56
    • ограничено 16 ГБ оперативной памяти
  • Firefox
    • 268435455
    • 20 секунд
    • Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:41.0) Gecko/20100101 Firefox/41.0
    • ограничено максимальной длиной строки
  • Chrome
    • 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 works in 1 second
    • 268435455 использует 100% ЦП в течение 2 минут, но не может отобразить тело и не может использоваться
    • версия 38.3.0
  • SeaMonkey
    • 2097132 works in 5 seconds
    • 268435455 использует 100% ЦП в течение длительного времени (более 5 минут)
    • версия 2.38
  • Apple Mail
    • 500000 works in 14 seconds
    • 2097132 использует 100% ЦП в течение длительного времени (более 5 минут)
    • версия 8.2
  • Microsoft Outlook
    • trims to 2070 in 1 second
    • версия 2013
person user1133275    schedule 09.10.2015