Эффективный максимальный mailto: длина тела
Максимальная длина текста в разделе &body ссылки mailto:. По словам одного из моих коллег, W3C публикует ограничение как 256 (хотя у меня нет ссылки, чтобы подтвердить это).
Мы встраиваем mailto: ссылки как в электронное письмо, так и на веб-страницу и успешно использовали более 256 символов. Однако после определенного момента почтовые клиенты и браузеры начинают отключаться и отказываются открывать ссылку.
Я хотел бы знать фактическую максимальную длину, разрешенную для следующего:
Почтовые клиенты:
- Outlook (2003, 2007, 2010)
- Eudora (7.1 и / или новая версия)
- Thunderbird (последняя версия)
Браузеры:
- Firefox (3+)
- IE (6, 7, 8)
- браузер iPhone
Любые номера, которые вы можете предоставить, будут с благодарностью приняты.
4 ответа
Стандарт не определяет максимальную длину, оставляя реализацию до браузеров и почтовых клиентов (см. IETF RFC 2368).
Продукты Microsoft имеют установленные ограничения:
- Предел IE GET составляет 2 083 http://support.microsoft.com/kb/208427
- Outlook Express: 456 символов http://support.microsoft.com/kb/q182985/
Другие браузеры, вероятно, будут работать до размеров, превышающих разумный объем электронной почты. У iPhone нет задокументированного ограничения, но он работает с объемом до 1 МБ текста.
Современные браузеры, которые поддерживают URL-адреса данных (все, кроме IE<9) должны быть в порядке.
Для браузеров с консолями JS простой тест:
for (var i=2014; i>1600; i--) {var good=1; try {location.href='mailto:?body='+'a'.repeat(i)} catch (e) {good=0;} if (good==1) {console.log(i+13);break;}}
(13 для длины mailto:?body=
.)
На Firefox 32.0.3 это производит 2008 (длина тела 1995). На Thunderbird 31.2.0 все 1 995 символов попадают в тело нового электронного письма.
Некоторые говорят, что это в основном зависит от настроек ОС, но в Windows, по крайней мере, я не смог найти ни одной записи реестра, связанной с mailto
с числом около 2000.
По состоянию на 2022 год кажется, что Outlook (во всяком случае, 2007 год) принимает длинную строку query_string не менее 8000 символов с использованием mailto в Firefox. Однако, используя браузер Google Chrome, Chrome потерпел неудачу примерно в 2000 году. Наименьшим общим знаменателем, похоже, является Chrome. Очень жаль, так как это был запрос на протяжении более десяти лет.
Я только что провел эксперимент из Wolfram Mathematica в Microsoft Outlook. Он работает для строк длиной 31888 или меньше. Вот код, который я использовал для этого эксперимента:
Table[ToString@RandomInteger[{0, 9}], 31433] //
Partition[#, UpTo[80]] & //
Map[StringJoin] //
StringRiffle[#, "\n"] & //
"mailto:xxxxxxx.xxxxxxx@xx.com?subject=Testing out mailto!&body="<> # & //
Echo[#, "Total String Length", StringLength] & //
SystemOpen
и печатает 31888 как общую длину строки. Если увеличить 31433 на единицу, он перестает работать.