【问题标题】:What can I use to avoid mailto size limit?我可以使用什么来避免 mailto 大小限制?
【发布时间】:2023-04-08 02:59:01
【问题描述】:

我已经阅读了很多关于避免 mailto 长度限制的页面,但我还没有找到我的问题的答案。

我的问题是我无法从服务器(使用 PHP)发送邮件,因为员工必须在他们的私人邮箱中保留他们的电子邮件历史记录。

在选择一种类型的电子邮件后,我必须打开带有一些已填写字段的邮件软件客户端。 我的选择看起来像这样:

<select <!-- ... --> onchange="sendMailClientSide(this.value);">
    <!-- ... -->
</select>

还有我的javascript函数:

function sendMailClientSide(refType) {
    // ...
    var dest = "test@domain.ty";
    var subj = "Why this doesn't work ?";
    var body = /* a very big body */;

    var linkMailto = "?bcc="+dest+"&subject="+subj+"&body="+body;
    document.location.href = "mailto:"+linkMailto;
    // ...
}

对于某些邮件类型,这非常有效。
但正文超过 1400 个字符时,客户端软件无法打开。

我也尝试过提交 HTML 表单。使用这种方法,限制似乎更高,但它仍然有限制,因为它会因更大的邮件而失败。 最后,我尝试切割身体(类似这样的“&body="+body1+"&body="+body2+...),但它不起作用。

有人知道是否存在 Firefox 插件来扩展 mailto 大小吗?或者类似的东西(来自客户端的东西)?

【问题讨论】:

  • 从服务器用密件抄送发送给始发者?
  • 这可能与 URL 的长度有关 - 请参阅这个 SO 问题:stackoverflow.com/questions/417142/…
  • @Alex : 我想在这个选项,但我希望邮件直接在发送邮箱。
  • @Barry : 所有员工都在使用 Firefox (8.0),而当我使用 javascript 时,一切都是客户端,不是吗?所以,URL 限制应该是 > 60 000 个字符(而不是“只是”1400 对我来说)

标签: javascript html mailto


【解决方案1】:

我不认为这是直接可能的。正如您已经建议的那样,也许可以使用插件。

我的解决方法是为用户提供一个简单的表单,该表单提交给服务器,然后服务器直接发送邮件(根本不打开客户端邮件程序)。因此,您可以轻松避免大小限制。

这样做的问题是,用户没有他们已知的电子邮件界面,因此特殊的文本格式、自定义签名和类似的东西不起作用。

您必须根据格式需求和收件人来决定这一点。

【讨论】:

  • 所以问题出在Firefox和客户端邮件之间的电子邮件传输。我唯一的机会是开发一个程序(使用 C/C++ 语言)来解析具有特殊扩展名的文件(例如 file.contentMail)并启动客户端邮件。当然,每个员工都要安装这个软件,并在火狐参数中关联打开此类文件。
  • @Totinette:是的,如果你真的需要使用mailto:。我真的建议从您的邮件服务器发送它。
猜你喜欢
  • 2019-11-14
  • 2017-05-15
  • 2011-12-25
  • 2022-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多