我在从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 msg,其中包含应该发送的文本。
答案 0 :(得分:1)
作为想法的组合:
本质上,您可以在flex中创建/编辑消息,您可以在其中查看所有消息。然后使用更强大的方法发送它。
BTW:服务器端并不意味着你有一台服务器 - 而是你在flex之外有一些功能用于实际的消息创建和交付。答案 1 :(得分: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