0

我在从 flex 发送文件时遇到了一些问题。我目前使用下面的代码。如果 bodyVar 小于 1967,则电子邮件填充良好。当我调用此代码时,会打开一条 Outlook 消息,其中包含 bodyVar 中的任何内容。如果超过 1967 年,则会打开一个空白页。

var mailMsg:URLRequest = new URLRequest("mailto:");
var variables:URLVariables = new URLVariables();
variables.subject = subVar;
variables.body = bodyVar;
mailMsg.data = variables;
mailMsg.method = URLRequestMethod.GET;
navigateToURL(mailMsg, "_self");

我正在使用 Firefox,我认为这个 1967 来自那个。如果我使用 IE,那么电子邮件甚至不会打开。

有谁知道一种在 flex 中发送电子邮件的方法,它允许我发送大量文本?我不受格式或图像等的困扰。我只需要能够发送文本

谢谢

编辑

我刚刚发现这段代码显示了另一种不使用 URLVariables 对象的方式。我认为这里的限制是在 http

var s:String = "";
s += "mailto:";
s+= sendTo.text;
s+= "?";
s+= "subject=";
s+= subjectVar;
s+= "&";
s+= "body=";
s+= bodyVar;
navigateToURL(new URLRequest(s));

编辑 2 明确地说,我想使用用户的电子邮件客户端打开一封新电子邮件。因此,如果他们安装了 Outlook,我希望打开一个 Outlook 消息,其中包含应发送的文本。

4

2 回答 2

1

作为想法的组合:

  1. 在具有选择地址、编辑文本等功能的弹性面板/窗口中显示消息文本。
  2. 获取此信息并将其发送到服务器端对象(PHP 电子邮件、MAPI 等)以进行传递

本质上,您可以在 flex 中创建/编辑消息,您可以在其中看到所有内容。然后,您使用更强大的方法来发送它。

顺便说一句:服务器端并不意味着你有一个服务器——而是你有一些在 flex 之外的功能,用于实际的消息创建和传递。

于 2013-01-03T15:42:41.163 回答
1

不久前我遇到了这个确切的事情。经过一番深入挖掘,我发现了这个问题:

问题是 Outlook(如 Internet Explorer)的 URI 字符限制为 2048 个字符(总长度这就是你被切断的原因)。Outlook 还具有 75 个收件人的最大收件人长度。

所以你的硬限制来自前景。我认为将 Firefox 设置为默认浏览器时它执行不同的原因是因为 firefox 支持的字符比 Internet Explorer 多得多。所以它会通过firefox......然后在outlook中死去。但是当你使用 IE 时,它会在 IE 中死掉,因为它们具有相同的小字符限制。

它显示为空白的原因是因为一旦达到这些限制之一,浏览器就会将 mailto:long 字符串转换为 mailto:"" (一个空字符串)。

我会推荐:

a) 强制 UI 中的字符限制保持较小 b) 使用服务器端脚本来发送电子邮件。

这是一个链接,显示所有不同的浏览器和电子邮件客户端及其相应的字符限制Link to Limits Page

于 2013-01-04T19:30:38.857 回答