【问题标题】:how to get around chrome mailto maxlength limit如何绕过 chrome mailto maxlength 限制
【发布时间】:2014-09-17 03:18:53
【问题描述】:

Chrome 的 mailto 长度限制约为 2000 个字符。这似乎已经足够了,但实际上它只对英语就足够了。因为长度是在encodeURI之后计算的。

例如只有一个日文字符“て”。 encodeURI('て') 得到“%E3%81%A6”,长度为 9 个字符。所以我只能在我的邮件内容中输入大约 2000/9 = 200+ 日文字符。这实在是太短了。

那么有没有办法绕过这个限制?像安装 chrome 插件这样的东西是可以接受的。

非常感谢任何建议。

编辑

我最终决定使用服务器端解决方案:创建一个弹出页面来模拟邮件客户端,带有收件人、抄送、主题、内容以及发送按钮。用户点击发送按钮后,表单将被提交,服务器将为用户发送邮件

【问题讨论】:

  • 您可能已经阅读过这篇文章,但是如果您发送自己的电子邮件,我会提供一些有用的信息,以确保您的电子邮件不会最终进入垃圾邮件文件夹 - blog.codinghorror.com/… 如果您对此很认真,那么某些 SMTP 云提供商可能有用
  • 好点切换到服务器端解决方案。提示:请务必使用验证码/速率限制添加垃圾邮件保护。否则,有人可能会使用您的服务器向其他人发送垃圾邮件,您的 SMTP 服务器将被普通邮件提供商列入黑名单。 (几年前发生在我身上)。
  • 感谢您的建议。

标签: javascript google-chrome mailto


【解决方案1】:

我对 Firefox(开发者版 39.0a2,Windows XP)上的任何大小的 mailto-links 都没有问题,但是 Internet Explorer 8 和 Chrome 不支持上述大小超过 2000 个字符的 mailto-links。所以,我怀疑这是 Windows 特有的问题。

【讨论】:

  • 当时我无法发表评论(得分不到 25 分),@progressive_overload 编辑了我在帖子中提到的内容...
  • @Cyrus 如有疑问,请不要发布任何答案。
  • 我面临着完全相同的问题。
【解决方案2】:

这似乎是 microsoft windows 问题。我已经尝试了以下方法,它在 ma​​c os x 上与不同的浏览器(safari、chrome 30 和 36、...)运行良好

windows 中,请求将被截断为大约 2000 个字符。无论使用哪种浏览器,都会发生这种情况。 windows 似乎对系统 uri 请求有大小限制

我已尝试使用 html <a href="mailto:?body=... 和 javascript document.location = encodeURI('mailto:?body=' + text),消息正文中有 100k 个字符。

我把这两个例子都放在了FIDDLE

【讨论】:

  • 所以这似乎不是chrome的错。但是 chrome 的 mailto url 编码策略对于这个操作系统限制来说实在是太糟糕了。 IE 可以支持大约 2000/2 = 1000 个非 ASCII 字符,而 chrome 只能支持大约 2000/9 = 200+。
猜你喜欢
  • 2011-05-03
  • 2016-11-06
  • 2016-09-08
  • 1970-01-01
  • 1970-01-01
  • 2021-11-12
  • 2015-08-08
  • 2016-06-18
  • 1970-01-01
相关资源
最近更新 更多