Обойти ограничение на количество символов в mailto / href / url - PullRequest
9 голосов
/ 01 ноября 2010

У меня есть ссылка mailto в теге привязки

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

Проблема заключается в том, что параметр Body представляет собой огромную статью, и в URL-адресе существует ограничение на число символов.

Есть ли способ обойти ограничение?

Ответы [ 4 ]

10 голосов
/ 01 ноября 2010

Есть ли способ обойти лимит?

Очень трудно.

Возможно даже, что ограничения варьируются от браузера к браузеру или от клиента электронной почты до клиента электронной почты.

Я бы предпочел использовать HTML-форму и серверный скрипт для отправки сообщения.

6 голосов
/ 01 ноября 2010

Да, есть ограничение на длину URL.

Ограничение варьируется от браузера к браузеру, поэтому для безопасности URL-адрес должен быть не более 2000 символов.

Internet Explorer, по-видимому, является браузером с самым коротким пределом. Согласно этой статье это 2083 символа.

0 голосов
/ 02 февраля 2018

Я знаю, что этот вопрос старый, но у меня была похожая проблема, превышающая лимит, необходимый для отправки электронного письма нескольким получателям.

Я наткнулся на это решение , но я не понимаю, почему оно работает, я все равно оставляю его здесь

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

использование:

var emails = 'a@a.com;b@b.com;c@c.com';
sendEmails(emails);
0 голосов
/ 25 июля 2012

Да, есть проблемы с тегом Mailto, он варьируется от браузера к браузеру и почтовому клиенту почтовый клиент В случае этой проблемы попробуйте серверный скрипт, чтобы преодолеть эту проблему. Mailto временами ведет себя очень ненормально

...