【问题标题】:Getting around mailto / href / url character limit绕过 mailto / href / url 字符限制
【发布时间】:2011-05-03 07:35:02
【问题描述】:

我在锚标记中有一个 mailto 链接

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

问题是 Body 参数是一篇大文章,而且 url 似乎有字符限制。

有没有办法绕过这个限制?

【问题讨论】:

    标签: html url anchor mailto


    【解决方案1】:

    我知道这个问题很老,但我遇到了类似的问题,因为我需要将电子邮件发送给许多收件人,因此达到了限制。

    我遇到了这个solution,但我不明白它为什么起作用,我还是把它留在这里

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

    【讨论】:

    • 如果 url 太大,它通过拆分 mailto 中列出的电子邮件并为每个切片的电子邮件集手动调用 mailto 来工作。这只适用于有太多电子邮件(而不是在原始问题中提出的大量正文)并且它会在邮件客户端中创建多个电子邮件草稿。
    • 不,它会创建多个带有正文部分的电子邮件。
    【解决方案2】:

    是的,Mailto 标签存在问题,它因浏览器和电子邮件客户端而异 电子邮件客户端。如果出现此问题,请尝试使用服务器端脚本来解决此问题。 Mailto 有时表现得很不正常

    【讨论】:

    • 答案似乎与其他已经发布的答案相似,并且不是很有用。你有更多细节要补充吗?
    【解决方案3】:

    是的,URL 的长度有限制。

    限制因浏览器而异,因此您应该将 URL 保持在 2000 个字符以下以确保安全。

    Internet Explorer 似乎是限制最短的浏览器。根据this article,它是 2083 个字符。

    【讨论】:

    • 这也适用于 href="" 这对我的 href="javascript: new Array(.....)" (非常长的数组)来说是个问题
    【解决方案4】:

    有没有办法绕过限制?

    几乎没有。

    甚至可能限制因浏览器而异,或因电子邮件客户端而异。

    我宁愿使用 HTML 表单和服务器端脚本来发送消息。

    【讨论】:

    • 我不想通过电子邮件发送消息。我希望它像普通的 mailto 链接一样工作,用户可以通过他们的邮件客户端发送电子邮件。
    • @gAMBOOKa 我明白了。你可能不走运......也许可以发送一个指向信息的链接?
    • 是的,我想摘录和链接必须要做。谢谢!
    猜你喜欢
    • 2014-09-17
    • 1970-01-01
    • 2012-01-15
    • 2011-11-19
    • 1970-01-01
    • 2021-02-06
    • 2015-11-27
    • 2018-10-14
    • 1970-01-01
    相关资源
    最近更新 更多