Moverse por el límite de caracteres de mailto / href / url

Tengo un enlace de mailto en una etiqueta de anclaje

Email This 

El problema es que el parámetro Body es un artículo enorme, y parece que hay un límite de caracteres en la url.

¿Hay alguna forma de superar el límite?

¿Hay alguna forma de superar el límite?

Muy difícil

Incluso es probable que las limitaciones varíen de un navegador a otro, o de un cliente de correo electrónico a un cliente de correo electrónico.

Prefiero usar un formulario HTML y un script del lado del servidor para enviar el mensaje.

Sí, hay un límite en la longitud de la URL.

El límite varía de un navegador a otro, por lo que debe mantener la URL por debajo de 2000 caracteres para que sea segura.

Internet Explorer parece ser el navegador que tiene el límite más corto. Según este artículo , son 2083 personajes.

Sí, hay problemas con la etiqueta de Mailto, varía de un navegador a otro y un cliente de correo electrónico a un cliente de correo electrónico. En el caso de este problema, intente con el script del lado del servidor para solucionar este problema. Mailto a veces se comporta de manera muy anormal

Sé que esta pregunta es antigua, pero tuve un problema similar, llegando al límite ya que necesitaba enviar el correo electrónico a muchos destinatarios.

Encontré esta solución , pero no entiendo por qué funciona, la dejo aquí de todos modos

 function sendEmails(emails) { var timeout = 2000; var mailtoPrefix = 'mailto:?bcc='; var maxUrlCharacters = 1900; var separator = ';'; var currentIndex = 0; var nextIndex = 0; if (emails.length < maxUrlCharacters) { window.location = mailtoPrefix + emails; return; } do { currentIndex = nextIndex; nextIndex = emails.indexOf(separator, currentIndex + 1); } while (nextIndex != -1 && nextIndex < maxUrlCharacters) if (currentIndex == -1) { window.location = mailtoPrefix + emails; } else { window.location = mailtoPrefix + emails.slice(0, currentIndex); setTimeout(function () { sendEmails(emails.slice(currentIndex + 1)); }, timeout); } } 

uso:

 var emails = 'a@a.com;b@b.com;c@c.com'; sendEmails(emails);