Domanda

Ho un collegamento mailto in un tag di ancoraggio

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

Il problema è che il parametro corpo è un articolo enorme, e sembra che vi sia un limite di caratteri sull'URL.

C'è un modo per aggirare il limite?

È stato utile?

Soluzione

  

C'è un modo per aggirare il limite?

Molto poco.

E 'anche probabile che i limiti variano da browser a browser, o da client di posta elettronica al client di posta elettronica.

avrei preferito utilizzare un modulo HTML e uno script lato server per inviare il messaggio.

Altri suggerimenti

Sì, c'è un limite alla lunghezza dell'URL.

Il limite varia da browser a browser, così si dovrebbe tenere l'URL di seguito 2000 caratteri per essere sicuri.

Internet Explorer sembra essere il browser che sta avendo il limite più breve. Secondo questo articolo IT di 2083 caratteri.

Sì, ci sono problemi con Mailto tag varia da browser a browser e client di posta elettronica a client di posta elettronica. In caso di problemi di questo provare script lato server per superare questo problema. Mailto a volte si comporta molto anormale

So che questa domanda è vecchio, ma ho avuto un problema simile, colpendo il limite come ho bisogno di inviare l'e-mail in molti destinatari.

mi sono imbattuto in questo soluzione , ma non capisco perché funziona, lo lascio qui comunque

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

utilizzo:

var emails = 'a@a.com;b@b.com;c@c.com';
sendEmails(emails);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top