Frage

Ich habe einen mailto-Link in einem Anker-Tag

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

Das Problem ist, dass die Body-Parameter ein großer Artikel, und es erscheint die URL ein Zeichen begrenzt zu sein.

Gibt es eine Möglichkeit, die Grenze zu umgehen?

War es hilfreich?

Lösung

  

Gibt es eine Möglichkeit, die Grenze zu umgehen?

Sehr kaum.

Es ist sogar wahrscheinlich, dass die Einschränkungen von Browser zu Browser unterschiedlich sein, oder von E-Mail-Client E-Mail-Client.

Ich würde lieber ein HTML-Formular und ein serverseitiges Skript verwenden, um die Nachricht zu senden.

Andere Tipps

Ja, es gibt eine Grenze für die Länge der URL.

Die Grenze variiert von Browser zu Browser, so dass Sie die URL unter 2000 Zeichen halten sollten sicher sein.

scheint Internet Explorer den Browser zu sein, der die kürzeste Grenze haben. Nach diesem Artikel die es 2083 Zeichen.

Ja, es gibt Probleme mit Mailto-Tag es von Browser zu Browser und E-Mail-Client variiert E-Mail-Client. Im Falle dieser Probleme versuchen serverseitige Skript, dieses Problem zu überwinden. Mailto manchmal benimmt sich sehr abnormal

Ich weiß, diese Frage ist alt, aber ich hatte ein ähnliches Problem, schlagen die Grenze, wie ich die E-Mail in viele Empfänger senden benötigt.

Ich kam in dieser Lösung , aber ich verstehe nicht, warum es funktioniert, ich lass es hier sowieso

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

Nutzung:

var emails = 'a@a.com;b@b.com;c@c.com';
sendEmails(emails);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top