Enviar email por action script

36 views
Skip to first unread message

Georgecp

unread,
Jul 21, 2008, 10:02:18 AM7/21/08
to flexdev
Bom dia pessoal !!
Eu sei que para enviar email de um formulario Flex , devemos usar PHP,
Coldfusion, Java...

Mas eu queria saber se tem como fazer isso em action script.
Se alguem puder me ajudar eu agradeço.

Valeu !!!

Vicente Maciel Junior

unread,
Jul 21, 2008, 10:16:53 AM7/21/08
to fle...@googlegroups.com
Eu nunca fiz, mas é possível utilizando-se a classe flash.net.Socket

Dando uma pesquisada, encontrei uma solução pronta pra uso:
http://asmailer.riaforge.org/

O código ainda é considerado em fase "alpha" mas já pode servir de base para uma implementação própria.

--
Vicente Maciel Junior
Independent Web Developer & Consultant
Adobe Advanced Certified Developer
Adobe Certified Instructor (ColdFusion & Flash Platform)
+55 (71) 8120-0035 / 9212-0909 - MSN: maci...@gmail.com
http://teclandoalto.blogspot.com


2008/7/21 Georgecp <georg...@gmail.com>:

Georgecp

unread,
Jul 21, 2008, 10:26:59 AM7/21/08
to flexdev
Beleza Vicente , vou testar e te digo se funciona ou não.

Muito obrigado !!!

Rogerio Gonzalez

unread,
Jul 22, 2008, 5:30:54 PM7/22/08
to fle...@googlegroups.com
Lembrando que para usar conecções socket, vc irá precisar de crossdomains nos servidores.

Ou seja, se for usar um SMTP, precisará que nele vc tenha um crossdomain.xml liberando o acesso do seu site para aquele servidor. Isso só não é necessário se estiver na mesma maquina (localhost?).

Abraços

Rogerio Gonzalez




2008/7/21 Georgecp <georg...@gmail.com>:

Vicente Maciel Junior

unread,
Jul 24, 2008, 3:35:14 PM7/24/08
to fle...@googlegroups.com
Por coincidência precisei implementar essa funcionalidade numa aplicação que estou desenvolvendo.
Fiz alguns testes com a solução que te indiquei e não consegui fazer funcionar.
Encontrei no ByteArray.org uma classe (package) desenvolvida pelo Thibault Imbert que também não estava funcionando, mas como ele disponibiliza os fontes deu para verificar os problemas e corrigí-los.

O teste que eu fiz está aqui para ser visualizado e para pegar o fonte (FlexBuilder Project Archive):
http://teclandoalto.blogspot.com/2008/07/usando-flashnetsocket-para-enviar.html

Como a classe desenvolvida pelo Thibault está bem básica (assim como o exemplo que eu fiz em cima dela), resolvi que vou ter que escrever minha própria solução, mas sem dúvida o trabalho do Thibault foi um excelente start. Inclusive essa solução dele já implementa a lógica para envio de anexos.

Espero que ajude mais alguém a esclarecer o uso do flash.net.Socket para este fim.

PS: Como meu target é AIR, não houve necessidade de implementar o "crossdomain.xml" como o Rogerio corretamente apontou que seria necessario no caso de se utilizar Flex (FlashPlayer).



--
Vicente Maciel Junior
Independent Web Developer & Consultant
Adobe Advanced Certified Developer
Adobe Certified Instructor (ColdFusion & Flash Platform)
+55 (71) 8120-0035 / 9212-0909 - MSN: maci...@gmail.com
http://teclandoalto.blogspot.com


2008/7/21 Georgecp <georg...@gmail.com>:

Hamad Amaral

unread,
Jul 24, 2008, 4:03:48 PM7/24/08
to Vicente Maciel Junior
Vicente,

VMJ> PS: Como meu target é AIR, não houve necessidade de implementar o
VMJ> "crossdomain.xml" como o Rogerio corretamente apontou que seria necessario
VMJ> no caso de se utilizar Flex (FlashPlayer).

Como seu objetivo é AIR faz sentido implementar o envio de e-mail via
ActionScript. Você poderia indicar razões para essa implementação em
uma aplicação flex?

Obrigado.

--
Hamad Amaral
ha...@hamad.com.br
www.hamad.com.br/blog

Vicente Maciel Junior

unread,
Jul 24, 2008, 4:06:40 PM7/24/08
to fle...@googlegroups.com
Particularmente (e rapidamente) eu só consigo ver uma: Não saber ou não ter acesso a uma tecnologia server-side.

Vicente Maciel Jr

2008/7/24 Hamad Amaral <lis...@hamad.com.br>:

Vicente Maciel Junior

unread,
Jul 24, 2008, 4:10:45 PM7/24/08
to fle...@googlegroups.com
Se bem que...
Sabe aqueles problemas com timeout no envio de emails em massa, os quais a gente resolve com schedule e outros artificios? Pensando bem, considerando até mesmo questões de interface e retorno de informação para o usuário em tempo real, implementar uma solução em Flex/Flash via Socket diretamente com o servidor de email poderia cair bem.

Vicente Maciel Jr

2008/7/24 Hamad Amaral <lis...@hamad.com.br>:

Hamad Amaral

unread,
Jul 24, 2008, 4:55:34 PM7/24/08
to Vicente Maciel Junior
Vicente,

Até seria uma boa solução, mas ainda não vi uma solução 100% para
e-mail, até porque e-mail não foi feito para ser 100% :-)

Costumo dizer para clientes não confiarem em e-mails, por exemplo,
fiz um site de e-commerce e a administradora recebe notificações de pedidos
por e-mail, mas também implementei em algumas telas relatórios
relacionadoes às notificações :-)

VMJ> Se bem que...
VMJ> Sabe aqueles problemas com timeout no envio de emails em massa, os quais a
VMJ> gente resolve com schedule e outros artificios? Pensando bem, considerando
VMJ> até mesmo questões de interface e retorno de informação para o usuário em
VMJ> tempo real, implementar uma solução em Flex/Flash via Socket diretamente com
VMJ> o servidor de email poderia cair bem.

>> VMJ> PS: Como meu target é AIR, não houve necessidade de implementar o
>> VMJ> "crossdomain.xml" como o Rogerio corretamente apontou que seria
>> necessario
>> VMJ> no caso de se utilizar Flex (FlashPlayer).
>>
>> Como seu objetivo é AIR faz sentido implementar o envio de e-mail via
>> ActionScript. Você poderia indicar razões para essa implementação em
>> uma aplicação flex?

Vicente Maciel Junior

unread,
Jul 24, 2008, 5:09:09 PM7/24/08
to fle...@googlegroups.com
Hamad,

Imagine... na hora que eu estava saindo para uma reuniao, sobre um assunto completamente diferente (nada de tecnologia e em ingles), vi sua pergunta. Quem disse que eu consegui me concentrar na reunião?

Fiquei pensando nessa possibilidade e ela tem fundamento se observarmos o seguinte:
Se tem um aspecto marcante no RIA é justamente a distribuição de recursos (diga-se "inclusive" processamento), valendo-se da máquina cliente para compor os núcleos de efetivação de uma tarefa. Imagine nesse conceito que processar o envio de emails em massa transfere para a maquina cliente uma boa tarefa de consumo de processamento que normalmente designamos ao servidor de aplicações. E podemos ainda considerar, que trabalhando com Socket diretamente ao servidor de email, ganhamos um controle que na verdade perdemos (ou com dificuldade controlamos) no server-side.

Claro que existe o "contra": A depender to tamanho do processo (no caso, quantidade de emails), o fator de usabilidade fica comprometido quando exige-se do usuário que ele mantenha uma aplicação aberta (o navegador no caso) para realizar uma determinada tarefa até o fim. Mas creio que até mesmo este "contra" é relativo, pois implicar no consumo de recursos do servidor para atender um usuário desconectado (prejudicando em performance (outra questão bem relativa) os usuarios conectados), me parece nào ser muito "inteligente".

Ou seja, sinceramente quero prestar mais atenção na viabilidade de uma solução deste tipo para processamento de emails em massa em uma aplicação web, levando em conta o considerável aumento de performance que o FlashPlayer tem alcançado. Obrigado pela "luz".



--
Vicente Maciel Junior
Independent Web Developer & Consultant
Adobe Advanced Certified Developer
Adobe Certified Instructor (ColdFusion & Flash Platform)
+55 (71) 8120-0035 / 9212-0909 - MSN: maci...@gmail.com
http://teclandoalto.blogspot.com


2008/7/24 Hamad Amaral <lis...@hamad.com.br>:

Hamad Amaral

unread,
Jul 24, 2008, 10:14:51 PM7/24/08
to Vicente Maciel Junior
Vicente,

VMJ> Ou seja, sinceramente quero prestar mais atenção na viabilidade de uma
VMJ> solução deste tipo para processamento de emails em massa em uma aplicação
VMJ> web, levando em conta o considerável aumento de performance que o
VMJ> FlashPlayer tem alcançado. Obrigado pela "luz".

Muito inteligente a sua abordagem, mas tenho sérias restrições a delegar ao
cliente tarefas que são tipicamente de servidor, acho que somente
usaria a solução que você propôs em uma situação controlada.

Abraço.

Vicente Maciel Junior

unread,
Jul 25, 2008, 7:56:23 AM7/25/08
to fle...@googlegroups.com
Então Hamad,

O que passei a perceber é que talvez uma sessão designada a enviar emails para o servidor de email, claro a depender do porte da aplicação que estamos tratando, como uma tarefa que será disparada por um cliente e está relacionada diretamente com a ação específica desse usuário/sessão (por exemplo, seleção de remetentes e especificação de conteúdo) e que por sua vez geralmente tem uma grande necessidade de acompanhamento de andamento (retorno visual), creio que soluções como essas, baseada no FlashPlayer, podem ser muito viáveis.

Não sei se o assunto está off-topic (embora acho que estejamos tratando de aspectos de arquitetura, onde o FlashPlayer/Flex pode apresentar-se como uma solução inovadora), mas fiquei interessado no assunto e queria saber o que seria "uma situação controlada".

Vicente Maciel Junior

2008/7/24 Hamad Amaral <lis...@hamad.com.br>:
Reply all
Reply to author
Forward
0 new messages