
26/02/2007 - Texto para a Web
07/12/2003 - Compacte bancos de dados MDB pelo ASP/VBS script
16/09/2007 - Mural de recados
09/01/2003 - Como arredondar os cantos de uma foto
17/05/2004 - Como fazer e modificar calendários
09/01/2003 - Implementando um tradutor de línguas no seu web site
14/01/2005 - Validando um e-mail checando se o domínio existe ou não...
07/12/2003 - Dando poderes ao Flash
08/12/2003 - Enviando um e-mail com arquivo em anexo
21/01/2003 - Fireworks VS Photoshop
07/04/2006 - Como fazer uma panorâmica 360 graus com equipamentos caseiros
07/04/2006 - Google continua a liderar o mercado de pesquisa
27/12/2006 - FTP usando PHP
08/12/2003 - Unindo e separando traçados - Fireworks
Leituras: 40136 -
Enviando EMAIL com ASP, COLDFUSION E PHP
Por Ken AwamuraINTRODUÇÃO
Neste tutorial veremos como enviar um e-mail do Flash com as principais tecnologias de middleware utilizadas na Web, que são : ASP, COLDFUSION E PHP. Cada uma destas 3 soluções possuem alguns detalhes que as diferem entre si, portanto vamos analisar cada solução separadamente.
Os arquivos .asp, .cfm e .php são totalmente diferentes entre si pois são tecnologias diferentes, porém os arquivos .flas para cada uma das soluções são todos muito parecidos onde a única diferença estará no momento em que cada um destes arquivos faz a requisição ao middleware correspondente. Portanto vamos analisar primeiramente a estrutura dos 3 arquivos .flas.
Nota: faça o download de todos or arquivos aqui.
ANÁLISE DOS ARQUIVOS .FLAs
Os arquivos a serem analisados são os seguintes : aspMail.fla, cfmMail.fla e phpMail.fla. A estrutura utilizada para cada um destes arquivos é a mesma e cada um deles contém os seguintes objetos :
- Três textFields do tipo input text : nome, email e msg
- Um textField do tipo dynamic text : status.
Utilizado para mostrar uma mensagem ao usuário : Enviando Mensagem e Mensagem Enviada Com Sucesso
- Um botão : enviar
A figura abaixo mostra o stage de cada um destes arquivos:
Nota : Não será feito validações de campos de formulário nestes exemplos.
De um modo simplificado, o processo de envio de email seria o seguinte :
- O usuário fornece alguns dados preenchendo campos de formulário
- O usuário envia estes dados ao servidor
- O middleware no servidor recebe os dados e os envia ao webServer
Uma vez criado a estrutura acima precisamos verificar o código necessário para que o email possa ser enviado. O botão 'enviar' conterá todo o código para isto e deverá executar as seguintes etapas no momento que for pressionado pelo usuário :
- Requisitar o middleware : utilizou-se o loadVariables com método Post
- Informar o usuário que a mensagem está sendo enviada : o textField 'status' mostra esta mensagem.
O actionScript do botão enviar é o seguinte :
on(release)
{
status = "ENVIANDO MENSAGEM";
loadVariablesNum("aspMail.asp", 0, "POST");
}Para as soluções em Coldfusion e PHP o comando loadVariables chamaria os arquivos cfmMail.cfm e phpMail.php respectivamente. Com isso vimos que a estrutura do arquivo Flash é a mesma independentemente do middleware utilizado.
A próxima etapa é analisar como o ASP, COLDFUSION e PHP recebem os dados do Flash e enviam o email.
<SOLUÇÃO EM ASP>
Uma das características do ASP é a extensa utilização de componentes para a execução de diversas tarefas. Existem componentes como o aspCache, aspUpload, aspMail, etc sendo que alguns são gratuitos e outros pagos. Isto quer dizer que se você pretende mandar um email com ASP, provavelmente utilizará algum componente. Felizmente o IIS já vem com um componente de email gratuito chamado CDONTS (Collaboration Data Objects for Win NT), e é exatamente este componente que foi utilizado neste exemplo.
A maior parte dos Provedores possui o CDONTS instalado, porém é interessante verificar com o seu Provedor qual componente ele utiliza para se criar um arquivo de email compatível.
nota : o NT4 sem o option pack utiliza o CDO. O CDONTS é o CDO com o option pack e o CDO 2.0 é a versão para o win2000. (e sabé lá o que vem para o ASP.NET e o XP)
Detalhes à parte, vamos analisar o arquivo aspMail.asp :
Foi utilizado o ASP padrão, ié ASP com vbScript (coisas do passado, pois ASP de verdade hoje é ASP.NET com C#, quando eu crescer talvez use) e o código está listado a seguir :
Dim myMail, fields, f1, f2
Declaração de variáveis necessárias no script.
Por padrão foi estabelecido que a mensagem enviada teria como cabeçalho o nome da pessoa que enviou o email (campo 'nome' no Flash) e como corpo o email do remetente mais a mensagem. A variável 'fields' armazenará o email e a mensagem do usuário e as variáveis f1 e f2 armazenarão o email e a mensagem respectivamente.
f1 = "Email: " & Request.Form("email") & vbcrlf
O código acima armazena o email do usuário e repare que o ASP trata o textField (email) do Flash como se fosse um campo de formulário normal, utilizando request.form(nome do textField do Flash) para capturar a variável enviada pelo Flash.
f2 = "MSG: " & Request.Form("msg") & vbcrlf
Analogamente captura-se o conteúdo do textField 'msg' do Flash na variável f2.
fields = f1 & f2
A variável 'fields' armazena o email e a msg que formarão o corpo do email.
A seguir o ASP cria uma instância do objeto responsável pelo envio do email :
Set myMail = CreateObject("CDONTS.NewMail")
myMail.From = request.Form("nome")
myMail.To = "seuNome@seuEmail.com.br"
myMail.MailFormat = 1
myMail.Body = fields
myMail.Send
Set myMail = NothingO código acima é praticamente auto-explicativo, mas é importante reparar que o objeto myMail.From captura o conteúdo do textField do Flash que possui o nome do usuário, o objeto myMail.TO deve conter o endereço de email destino, o objeto myMail.Body conterá o corpo do email que foi armazenado na variável 'fields' e feito isto o email pode ser enviado com o myMail.Send. Após o envio é eliminado a instância do objeto myMail com o comando Set myMail=nothing.
Uma vez enviado o email precisamos avisar o usuário sobre isto através de uma mensagem que aparecerá no Flash, naquele textField dynamic chamado 'status'. O código a seguir mostra este processo :
Response.write "status=MENSAGEM ENVIADA COM SUCESSO"
O Flash é capaz de receber a mensagem acima pois após o loadVariables tanto o Flash como o ASP compartilham a mesma região de memória em relação às suas variáveis.
Com isso vimos como enviar um email básico com o ASP e o CDONTS. Caso utilize-se algum outro componente de email, tudo o que será necessário é uma adaptação à este componente, porém todos são muito parecidos e creio que não haverá grandes dificuldades para isto.
<SOLUÇÃO EM COLDFUSION>
Aqui tudo fica mais simples, pelo menos para mim (hehehe). A característica principal da linguagem CFML é a utilização de tags específicas para seus comandos e no caso do email utilizar-se-á a tag <CFMAIL> que possui vários atributos, porém vamos nos concentrar somente nos atributos padrões : To, From e Subject.
O arquivo cfmMail.cfm tem a seguinte estrutura :
<cfsetting enablecfoutputonly="Yes">
<CFMAIL to="seuNome@seuemail.com.br" from="#nome# subject="CFM Mail">
email : #email#
Mensagem : #msg#
</CFMAIL>
<cfoutput>
&status=MENSAGEM ENVIADA COM SUCESSO
</cfoutput>
Linha 2 : 'enablecfoutputonly' significa que somente o que estiver entre as tags <cfouput> será impresso em tela e no caso do uso com o Flash, será feito output à memória. Esta tag pode ser dispensada, porém caso ocorra algum erro durante o processo, caso esta tag não tivesse sido declarada, junto com a msg de erro impressa na tela apareceria o conteúdo da tag <cfmail> e outras que também estivessem lá, o que muitas vezes não é interessante. Suponha que você estivesse acessando um banco de dados via string de conexão e um erro ocorreu. Não é interessante mostrar o caminho deste banco de dados. Esta tag configurada para 'true' evitaria que o caminho fosse impresso na tela.
Linha 4 :
TO deve conter o email destino
FROM no nosso caso conterá o nome do usuário. Note que o Coldfusion lê a variável 'nome' do Flash como se fosse uma variável CFM.
SUBJECT o assunto do email. (Qualquer coisa serve)
Linhas 5 e 6 : conterá o corpo do email, que no nosso caso é o email do usuário mais a mensagem.
Linhas 9 à 11 : avisar o usuário que a msg foi enviada.
Simples como a vida deve ser. Next...PHP.
<SOLUÇÃO EM PHP>
O PHP tem uma solução similar ao Coldfusion.
nota : todas as 3 soluções foram simuladas via SMTP. Muito provavelmente você fará o upload de seu arquivo ao seu provedor e fará os testes por lá, porém caso deseje fazer em sua própria máquina é necessário (além de ter o PHP instalado - www.php.net) uma configuração de seu SMTP.
Configurando o SMTP no Windows:
1. Executar o arquivo info.php (está junto com os arquivos de download) via http (webServer) e verifique as configs abaixo :
- sendmail_from : me@localhost.com
- sendmail_path : no value
- SMTP : (o endereço SMTP do seu provedor)
2.Para configurar o SMTP acima edite o arquivo php.ini e modifique a linha :
- [mail function] ;
- For Win32 only.
- SMTP = (o endereço SMTP do seu provedor) for Win32 only
No Unix, Linux e variantes:
- sendmail_path = /usr/sbin/sendmail
- Ou, se estiver usando o Qmail: sendmail_path = /var/qmail/bin/sendmail
Porém somente faça estas configurações caso queira testar os arquivos em sua máquina.
Enquanto o coldFusion possui uma tag específica para envio de email, o PHP possui uma função para isto chamada simplesmente de 'mail' com 4 argumentos básicos : recipient, subject, msg, mailheaders. O código do arquivo phpMail.php é mostrado a seguir :
Linha 3 : 'recipient' é equivalente ao TO e deverá conter o email destino.
Linha 5 : 'subject' é o assunto
Linha 7 : 'msg' conterá o corpo do email que no nosso caso é o email + a msg do usuário. Da mesma forma que o coldFusion, o PHP lê as variáveis do Flash como se fossem variáveis PHP.
Linha 9 : 'mailheaders' é o conteúdo para o cabeçalho, onde colocaremos somente o nome do usuário.
Linha 11 : Coletado todas as informações, envia-se o email com a função 'mail();'
Linha 13 : Mandamos a msg de sucesso ao usuário.
CONCLUSÃO
Este exemplo mostra como o Flash se integra com soluções como ASP, PHP e Coldfusion e serve também para notarmos os prós e contras de cada uma das tecnologias. É claro que isto não é o suficiente para se tirar uma conclusão definitiva a respeito de qual solução é a melhor, porém conseguimos notar bem como é que cada uma destas soluções é estruturada.
Enviem sugestões e dúvidas por e-mail, ou visite o Fórum S.O.S Designers
Grande abraço,
[ ]´s
Ken Awamura
--------------------------
Ken Awamura tem graduação em Bacharelado em Informática e iniciou sua carreira na área de análise de sistemas porém em 1998 decidiu se especializar em Desenvolvimento para a Web, especialmente com o uso do software Macromedia Flash que começou a usar na sua versão 3. Atualmente dedica-se mais na área de programação com actionScript e na integração do Flash com soluções externas tanto client como server side.
--------------------------
info@kencwb.com