36

Hay una longitud máxima para el texto en la sección del cuerpo & de un mailto: enlace. Según uno de mis compañeros de trabajo, el W3C publica el límite como 256 (aunque no tengo un enlace para respaldar esto).Mailto máximo efectivo: longitudes del cuerpo

Estamos incorporando mailto: enlaces tanto en un correo electrónico como en una página web y hemos utilizado con éxito más de 256 caracteres. Sin embargo, después de cierto punto, los clientes y navegadores de correo electrónico comienzan a descascararse y se niegan a abrir el enlace.

Me gustaría saber las longitudes máximas reales permitidos para las siguientes:

Los clientes de correo:

  • de Outlook (2003, 2007, 2010)
  • Eudora (7.1, y/o lo que sea la versión más reciente es)
  • Thunderbird (última versión)

Navegadores:

  • Firefox (3+)
  • IE (6, 7, 8) del navegador
  • iPhone

Cualquiera y todos los números que se puede brindar serán bien recibidas.

+0

https://stackoverflow.com/a/33041454/1133275 – user1133275

Respuesta

24

La norma no define una longitud máxima, dejando la implementación a navegadores y clientes de correo (ver IETF RFC 2368).

productos de Microsoft no han establecido límites:

Otros navegadores son propensos a trabajar hasta longitudes más allá de la de un cuerpo de correo electrónico razonable. El iPhone no tiene un límite documentado, pero funciona con hasta 1 MB de texto.

Los navegadores modernos que admiten direcciones de datos (todo excepto IE < 9) deberían estar bien.

+4

Enlace al iPhone prueba de longitud de mailto: http://www.benzado.com/blog/post/28/iphone-openurl-limit – jlev

+1

Gracias.Es una lástima que no hay más información sobre la longitud del correo, pero lo que me has dado es mejor que nada de lo que tenía antes :) –

+0

Ten en cuenta que la última versión de "Microsoft Outlook Express" fue en 2001 y luego se renombró Windows Mail/Windows Live Mail, no estoy seguro si tienen la misma limitación. – Peter

8

Para los navegadores con consolas JS, una prueba sencilla:

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;}} 

(El 13 es para la longitud de mailto:?body=.)

En Firefox 32.0.3 Esto produce 2008 (la longitud del cuerpo 1995). En Thunderbird 31.2.0, los 1.995 caracteres entran en el cuerpo del nuevo correo electrónico.

Some say it's mainly OS-setting-dependent pero en Windows, al menos, no pude encontrar ninguna entrada de registro relacionada con mailto con un número cercano a 2.000.

+0

Este script no funcionó para mí. En Chrome y Firefox, simplemente imprime cualquiera que sea el valor inicial de 'i', más 13. Incluso si el número es tan grande que la página se queda sin memoria. – JHS

+0

@JHS, verificó su resultado en Linux con el último FF. Supongo que una actualización rompió mi método de prueba, es decir, tratando de establecer 'window.location' demasiado tiempo una URL no arroja un error como lo hizo en el momento de la publicación. – Kev

+0

Estaba en Ubuntu 14.04 y lo probé en Firefox y Chrome, luego en una VM de Windows 10 con IE y Edge/Spartan. Traté de encontrar el límite al poner números muy grandes en tu script original (empezando por pequeño y trabajando). Chrome se quedó sin memoria y mostró la pantalla de "página muerta", mientras que Firefox siguió avanzando hasta que el proceso dejó de responder. En su mayor parte, los límites estrictos parecen imponerse solo por ciertos clientes de correo, como Outlook. No dudo que tu script funcionó en el momento en que lo escribiste. Los navegadores probablemente solían tener límites de longitud de URL. – JHS