Отправка электронной почты из браузера с помощью JavaScript и Flash ... это возможно? - PullRequest
0 голосов
/ 05 августа 2011

Мне интересно, можно ли делать то, о чем я думаю, и если это возможно, кто-нибудь знает о флеш-объекте, который делает то, что мне нужно?

Я знаю, что Flash-объект может предоставлять API-интерфейс javascript для взаимодействия с ним. Чего я не знаю, так это может ли Flash отправлять электронную почту напрямую, не обращаясь к веб-серверу для этого? Если бы это было возможно, разве нельзя было бы написать флеш-объект, который ничего не делал, кроме обеспечения API для отправки электронных писем? Была ли создана такая вещь, которую могут использовать другие?

Я хочу создать форму электронной почты на веб-странице, но сайт статичен (без серверных сценариев). В моей ситуации создание сценариев сервера невозможно, так как сервер отсутствует, сайт на стороне клиента CD / DVD / USB на 100%.

Ответы [ 4 ]

3 голосов
/ 05 августа 2011

Нет, ни Flash, ни JS не могут сделать это в одиночку, поскольку они являются технологиями на стороне клиента. Вам нужно создать серверный скрипт для отправки электронного письма, а затем запросить его у вашего клиента.

Неважно, находится ли SWF-файл на USB-накопителе или где-либо еще, вы все равно можете подключиться к серверу. Большинство веб-хостов поддерживают php, так что это будет самый простой способ. Проверьте этот поиск Google .

РЕДАКТИРОВАТЬ: если вы не можете использовать сервер, то вы можете использовать ссылку mailto, откроется почтовый клиент по умолчанию для пользователей.

var mailto:String = "mailto:email@example.com";
navigateToURL(new URLRequest(mailto), "_blank");

Вы также можете добавить тему и тело. См. http://www.ianr.unl.edu/internet/mailto.html для синтаксиса.

1 голос
/ 05 августа 2011

Да, это возможно при использовании вспышки, хотя я сам этого не делал и не советовал бы. Общая стратегия заключается в подключении к определенному почтовому серверу с использованием сокетов.

  1. Серверу потребуется «файл политики Socket», доступный на порту 843. Подробнее см. http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html. Это даст разрешения для подключения к выбранному порту для почтового ретранслятора (например, 25).
  2. Затем вы можете использовать библиотеку флеш-сокетов для создания клиента telnet. Смотри http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7cf7.html
  3. Создайте свою электронную почту в качестве полезной нагрузки для сокета и отправьте ее. См. http://www.yuki -onna.co.uk / электронная почта / smtp.html

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

Теперь маловероятно, что вы найдете общедоступный SMTP-сервер, который позволяет вам это делать, и если у вас действительно нет доступа к чему-либо на стороне сервера (нет веб-сервера, нет контроля над SMTP-сервером), то вы ' Вместо этого я буду полагаться на ссылки mailto: на стороне клиента.

0 голосов
/ 05 августа 2011

Вы не можете отправить электронное письмо, если нет подключения к Интернету, не имеет значения, используете ли вы JavaScript, Flash или что-либо еще.

Редактировать: http://code.google.com/p/smtpmailer/ Это написано в ActionScript и можетсоответствует вашим потребностям.

http://flashflex.com/sending-mail-in-actionscript-using-smtp/ Это некоторая справочная информация.

0 голосов
/ 05 августа 2011

Поскольку он запускается с компакт-диска на компьютере пользователя, а у вас нет сервера, лучшим вариантом (только?) Будет запуск собственного почтового клиента пользователя.

Попробуйте динамически создать ссылку mailto с помощью JavaScript, а затем щелкните ее. Он должен запускать локальный почтовый клиент (Outlook, Thunderbird и т. Д.) С указанным вами вводом. Пользователи должны будут нажать «отправить» сами.

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