Pergunta

Eu tenho um link de e -mail em uma tag de âncora

<a href="mailto:?subject=Subject&body=Body">Email This</a>

A questão é que o parâmetro do corpo é um artigo enorme e parece haver um limite de caracteres no URL.

Existe uma maneira de contornar o limite?

Foi útil?

Solução

Existe uma maneira de contornar o limite?

Muito dificilmente.

É até provável que as limitações variem do navegador para o navegador ou do cliente de e-mail para o e-mail cliente.

Prefiro usar um formulário HTML e um script do lado do servidor para enviar a mensagem.

Outras dicas

Sim, há um limite no comprimento do URL.

O limite varia do navegador ao navegador, portanto, você deve manter o URL abaixo de 2000 caracteres para estar seguro.

O Internet Explorer parece ser o navegador que está tendo o limite mais curto. De acordo com Este artigo São 2083 caracteres.

Sim, existem problemas com o e -mail a tag, ele varia do navegador para o navegador e o cliente de email para o cliente de email. No caso desses problemas, tente o script lateral do servidor para superar esse problema. Mailto às vezes se comporta muito anormal

Sei que essa pergunta é antiga, mas tive um problema semelhante, atingindo o limite, pois precisava enviar o email para muitos destinatários.

Eu me deparei com isso solução, mas não entendo por que funciona, eu deixo aqui de qualquer maneira

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);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top