发布mailto表单时邮件正文的限制

3
我有一个HTML表单,拥有大量的输入字段,用来填充邮件内容。今天我了解到使用GET方法会限制所发送内容的大小。但据我所知,使用POST方式则没有这种限制。虽然我认为使用POST方式也可能存在类似问题。当邮件达到一定大小时(或者我使用了太多的输入字段),我的邮件无法在邮件客户端中打开,这可能就是我的问题所在。
用户无法保持常态的互联网连接,并且唯一“可靠”的通信方法就是通过电子邮件。他们的计算机使用受限,无法运行任何可执行文件。因此,我创建了一个包含大量JavaScript的HTML文件,用于创建邮件正文。如果某些用户具有电子邮件客户端,则在这种情况下我想打开一个新邮件,其中包含来自HTML文件中表单的内容。
那么,在使用'action="mailto:"'提交表单时,是否存在发送内容大小的限制?
3个回答

4

在Firefox 3.5.8上测试,当使用action="mailto:"时,我只能将1994个字符塞入POST表单。通常情况下,你应该避免使用带有body参数的mailto:。

也许只需让他们手动复制/粘贴生成电子邮件的正文部分到客户端中。这非常原始,但有时你必须 improvisation....


同时,似乎IE会返回一个错误,抱怨“默认邮件客户端未正确安装”对于这个长度的字段。 - Warren
这就是让我想知道发生了什么的错误信息。嗯,所以最大字符数大约为2000。这意味着使用POST时通常与使用GET相同。在使用POST发送表单时是否有任何限制,但不使用action="mailto:"?我猜你不能告诉浏览器以某种方式扩展限制?我可以复制/粘贴正文,但那似乎不太用户友好。 - thorseye
我相信POST请求的大小通常受到服务器配置的限制(不同的服务器有不同的默认值)。你提到你没有稳定的互联网访问权限,那么你的服务器是否有直接发送电子邮件的能力?您可以考虑使用像PHP这样的脚本语言为用户发送电子邮件,而不是为他们打开电子邮件客户端。如果您只是使用操作页面来处理请求(假设您的电子邮件不是20MB的文本),则不应遇到任何POST长度问题。 - Warren

2
在IE浏览器上使用GET方法时,您的字符数总数限制为2083个字符。这适用于任何使用GET方法的内容。

1

补充一下所说的:在FF上,URL长度的限制也是类似的。

但最好的方法是测试一下,因为例如在IE8上,我注意到如果URL是2080 /(适合于2083最大长度),它仍然不能使用mailto协议)

您可以通过在页面中添加一个表单来轻松进行这些测试,其中包含一个URL。

<a href="mailto:xx@xy.com?subject=Hello&amp;body=Babe">click to send mail</a>

如果 href 值的总长度大于某个长度(约为 2083,但它实际上比这要小),当单击 URL 时,您会发现浏览器甚至不会尝试打开邮件。这不仅适用于 IE(至少是 6/7/8),也适用于 FF(至少是 3.6)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接