Как программно отправить электронное письмо из приложения Flash AIR MOBILE - PullRequest
1 голос
/ 27 марта 2012

Я пытаюсь выяснить, как отправить электронное письмо из приложения Flash Mobile (смартфоны: Blackberry, iPhone, Android), используя mxml и Flash, используя Flash Builder 4.6. Мой босс сказал мне, чтобы узнать, возможно ли это. До сих пор я много искал в интернете ответ.

Я нашел этот сайт: http://www.bytearray.org/?p=27,, в котором есть несколько классов для отправки электронной почты во флэш-памяти, но # 1, я не знаю, работают ли они в мобильных приложениях, и # 2, я не могу найти ни одного инструкции или руководства по использованию классов для отправки простого электронного письма.

Я скачал пакет с сайта и импортировал в свой проект, куда я пытаюсь отправить код. Но без примера кода о том, как просто отправить электронное письмо, я не совсем уверен, что все делают, и при этом я не уверен, как определить такие вещи, как, например, номер порта для создания объекта SMTPMailer (объект SMTPMailer включен в этот пакет, и он принимает строку хоста и целое число номера порта в своем конструкторе), сейчас я пытаюсь 80 или 8080 для номера порта, и я попробовал localhost и один из наших серверных компьютеров, 198.162.1.109 для хоста.

В любом случае, я получаю эту ошибку: Ошибка № 2044: необработанный IOErrorEvent :. текст = ошибка № 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 ]

1 голос
/ 28 марта 2012

Я бы предложил использовать внутреннюю службу для отправки электронной почты, это то же самое, что подключение к почтовому SMTP-серверу, но она более гибкая.

Это, как говорится, должно работать, ошибка, которую вы получаете, связана с вашим IP-адресом хоста, вы уверены, что у вас SMTP-сервер работает на "198.168.1.109:8080"? Сначала проверьте, можете ли вы отправлять письма с него, прежде чем пытаться сделать это через Flex, если это нормально, тогда вам следует дважды проверить файлы политики сокетов:

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

Надеюсь, что поможет

0 голосов
/ 08 июля 2014

Я сделал это в коммерческом приложении, над которым работал. Мы использовали нативное расширение, найденное в наборе инструментов distriqt. Гугл им. Полный набор инструментов стоит дешево, но если у вас есть какие-либо проблемы, не ожидайте быстрого ответа. Их инструмент сообщений - это то, что вы ищете, и им легко пользоваться.

0 голосов
/ 28 марта 2012

Разве вы не можете просто использовать navigateToURL() для этого?

То есть:

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

Вот и все - 2 строки:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...