如何以编程方式从Flash AIR MOBILE应用程序发送电子邮件

时间:2012-03-27 18:09:34

标签: flex email blackberry

我试图找出如何使用Flash Builder 4.6使用mxml和Flash从Flash Mobile(智能手机:黑莓,iphone,androids)应用程序发送电子邮件。我的老板告诉我要知道是否有可能。到目前为止,我一直在互联网上寻找答案。

我找到了这个网站:http://www.bytearray.org/?p=27,它有一些用于在flash中发送电子邮件的课程,但#1,我不知道他们是否在移动应用程序中工作,而#2,我找不到任何有关如何使用类发送简单电子邮件的说明或教程。

我从网站下载了包并导入到我的项目中,我正在尝试发送代码。但是如果没有关于如何简单发送电子邮件的示例代码,我不完全确定所做的事情,也不确定如何确定构建SMTPMailer对象的端口号(SMTPMailer对象包含在该包中),以及它需要一个主机字符串和一个端口号整数(在它的构造函数中),现在我正在尝试80或8080作为端口号,我已经尝试过localhost和我们的一台服务器计算机,198.162.1.109用于主机。

无论如何,我一直收到此错误:错误#2044:未处理的IOErrorEvent:。 text =错误#2031:套接字错误。

以下是我的一些示例代码:

[Bindable]
        private var mailer : SMTPMailer;

        private function init() : void {
            tbPass.displayAsPassword = true;
        }

        protected function btnClick_email(toAddress : String, fromAddress : String, pass : String) : void {
            mailer = new SMTPMailer("198.168.1.109", 8080);


            mailer.addEventListener(SMTPEvent.MAIL_SENT, onMailSent);
            mailer.addEventListener(SMTPEvent.MAIL_ERROR, onMailError);
            mailer.addEventListener(SMTPEvent.CONNECTED, onConnected);
            mailer.addEventListener(SMTPEvent.DISCONNECTED, onDisconnected);
            mailer.connect("hotmail.com", 8080);
            mailer.authenticate(toAddress, pass);
            mailer.sendHTMLMail(fromAddress, toAddress, "Subect", "Message");

        }

        private function onMailSent() : void {
            lblEmailResult.text = "Sent Mail";
        }

        private function onMailError() : void {
            lblEmailResult.text = "Error";
        }

        private function onConnected() : void {
            lblEmailResult.text = "Connected";
        }

        private function onDisconnected() : void {
            lblEmailResult.text = "Disconnected";
        }

3 个答案:

答案 0 :(得分:1)

我建议使用后端服务发送电子邮件,它与连接到SMTP邮件服务器相同,但更灵活。

话虽如此,它应该可以工作,你得到的错误与你的主机IP有关,你确定你的SMTP服务器运行在“198.168.1.109:8080”? 首先检查一下你是否可以通过Flex发送邮件,如果可以,那么你应该仔细检查套接字策略文件:

http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html

希望有所帮助

答案 1 :(得分:0)

你不能只使用navigateToURL()吗?

即:

var request:URLRequest("mailto:someone@somewhere.com");
navigateToURL(request);

这就是全部 - 2行:)

答案 2 :(得分:0)

我在我工作的商业应用程序中完成了这项工作。我们使用了distriqt工具集中的原生扩展。谷歌他们。全套工具很便宜,但如果您有任何问题,请不要期待快速回复。他们的消息工具正是您所寻找的,并且易于使用。