如何绕过铬邮件的最大长度限制
how to get around chrome mailto maxlength limit
Chrome的mailto长度限制在2000个字符左右。这似乎足够了,但实际上它只够英语语言。因为长度是在encodeURI
之后计算的。
。只有一个日文字符"。encodeURI('て')
得到"%E3%81%A6",长度为9个字符。所以我只能在我的邮件内容中输入大约2000/9 = 200+日文字符。这实在太短了。
那么有没有办法绕过这个限制呢?安装chrome插件之类的东西是可以接受的。
任何建议都非常感谢。
编辑
我最终决定使用服务器端解决方案:创建一个弹出页面来模拟邮件客户端,包含收件人、抄送、主题、内容和发送按钮。用户单击发送按钮后,表单将被提交,服务器将为用户发送邮件
我对Firefox (Developer Edition 39.0a2, Windows XP)上任何大小的邮件链接都没有问题,但是Internet Explorer 8和Chrome不支持超过上述2000个字符左右的邮件链接。所以,我怀疑这是Windows特有的问题
这似乎是Microsoft Windows的问题。我已经尝试了以下,它工作良好与不同的浏览器(safari, chrome 30 &在mac os x.
windows中的请求将被截断到大约2000个字符。无论使用哪个浏览器,都会发生这种情况。似乎windows对系统uri请求有大小限制
我已经尝试了从html <a href="mailto:?body=...
和javascript document.location = encodeURI('mailto:?body=' + text)
在消息体100k字符。
我把这两个例子放在这个小提琴
多年来,这个问题在StackOverflow上被提出了好几次,但没有一个可以接受的答案。服务器端解决方案并不总是可行的。
下面的解决方案可能是解决问题的最佳方法。Chrome/Edge的问题是"邮件"URL不能超过2000个编码字符。因此,我们首先测试它是否超过2000个字符,如果超过了,就复制"body"。将内容粘贴到剪贴板中,并将原始主体替换为要粘贴的说明。注意,如果有较大的"To/CC",您可能仍然会遇到问题。收件人列表。
function invokeMailClient(to,cc,subj,body) {
let encodedBody = encodeURIComponent(body);
let mailTo = "mailto:" + to + "?cc=" + cc + "&Subject=" + subj + "&body=";
if (mailTo.length + encodedBody.length > 1995) {
copyToClipboard(body);
encodedBody = encodeURIComponent("** Please press Ctrl-A Ctrl-V OR Right-Click and Paste the body template for this email **'n");
}
window.open(mailTo + encodedBody);
}
function copyToClipboard(str) {
let el = document.createElement('textarea');
el.value = str;
document.body.appendChild(el);
el.select();
document.execCommand('copy');
document.body.removeChild(el);
};
//TEST IT
let subj = "This is a test subject";
let to="johnDoe@michigan.gov";
let cc="janeDoe@stackoverflow.com";
//let body="small body -- no problem";
//invokeMailClient(to,cc,subj,body);
let body = "A quick brown fox jumps over the lazy dog'r'n".repeat(35);
invokeMailClient(to,cc,subj,body); //large "body" -- copies to clipboard
- WAMP响应内容长度限制
- 我可以设置HTML5文件上传的视频长度限制吗
- 在 AngularJS 中输入的数字的限制长度
- 绕过我自己计算机上的浏览器安全限制
- 文本长度限制在我的 instafeed 模板中不起作用
- 如何限制粘贴函数超过最大长度
- 将一行的长度限制在三个js中
- Ajax字符串长度限制
- Jquery将输入长度限制为n封电子邮件
- 使用字符串的替换方法时是否有长度限制
- 如何生成具有特定长度限制的所有可能组合的字母
- 如何通过输入的长度限制jQuery自动完成if条件
- 增加mailto:的IE URL长度限制
- 在JavaScript中格式化字符长度/限制
- 当达到最大长度限制时,更改输入字段样式
- 如何绕过铬邮件的最大长度限制
- Node.js HTTP Get URL长度限制
- 将文本长度限制为其容器大小
- onClick按钮输入的最大长度限制
- 字符串超过ajax POST长度限制