Enviar um formulário por e-mail com ASP

Criação de um script com um formulário que se envíi por correio eletrônico pelo servidor utilizando a tecnologia ASP.

Por Miguel Angel Alvarez - Tradução de JML


Publicado em: 24/8/05
Valorize este artigo:
Se desejarmos que, ao clicar o botão de envio de um formulário, sejam mandados os dados por e-mail utilizando o servidor e sem depender da configuração do cliente para saber se certamente essa mensagem pode ser enviada, devemos utilizar alguma tecnologia de programação de páginas do lado do servidor. Neste artigo vamos apresentar um exemplo sobre como fazer esta tarefa com ASP.

ASP (Active Server Pages) é a tecnologia de scripting do lado do servidor desenvolvido por Microsoft. Com este tipo de programação podemos construir páginas que mostrem um formulário e mande um correio eletrônico automaticamente com os dados recebidos uma vez enviado.

Poderíamos utilizar um esquema de código como o seguinte:

<%
if request.form="" then
'nao recebo formulario, entao o mostro
%>
<form action="formulario_mail_asp.asp" method="POST">
Nome: <input type="Text" name="nome" size="12" maxlength="200">
<br>
Email: <input type="Text" name="email" size="12" maxlength="200">
<br>
<input type="submit" value="Enviar">
</form> <%
else
'recebo um formulario, entao o trato
'recolho os dados
nome = request.form("nome")
email = request.form("email")
'componho o corpo da mensagem
corpo = "Formulario recebido" & VBNEWLINE & VBNEWLINE
corpo = corpo & "Nome: " & nome & VBNEWLINE
corpo = corpo & "Email: " & email
'mando o correio...
'..................
response.write "Obrigado por preencher o formulário. Foi enviado corretamente." end if %>


No script anterior utilizamos if (request.form="") para saber se estávamos recebendo ou não informação de um formulário.

Se não recebemos nada (porque em request.form temos uma cadeia vazia) este if sairia por seu caso verdadeiro, no qual teremos que apresentar o formulário na página.

O caso else, quando recebemos um formulário, recolhemos seus dados e criamos o corpo do e-mail que enviaremos ao endereço do administrador.

O resto do código, utilizado para definir as propriedades do e-mail e envia-lo, ainda não o indicamos. Antes um esclarecimento.

ASP não tem entre as funções da linguagem uma que sirva para enviar correios eletrônicos. Entretanto, podemos utilizar um componente ActiveX do servidor para realizar essas ações.

O componente CDONTS (presente em muitas das instalações de IIS) serviria para realizar o envio do e-mail, mas também existem no mercado outros componentes de servidor comerciais para realizar essas ações com maiores funcionalidades. Um deles é AspEmail, que é o que vamos utilizar neste script, mas não é o único.

Nota: Insistimos em dizer que o seguinte código, que faz a ação de enviar um e-mail, não funcionará se não tivermos o componente ASP AspEmail instalado corretamente em nosso servidor. Ademais, deveríamos consultar a documentação do componente, para comprovar que na versão que baixarmos continua funcionando tudo como aparece a seguir.

O código para enviar um e-mail poderia ser algo como isto:

'crio o objeto correio
set mail = server.createObject("Persits.MailSender")
'configuro a mensagem
'assinalo o servidor de saída para enviar o correio
mail.host = "mail.seudominio.com"
'indico o endereço de correio do remitente
mail.from = "oqueseja@seudominio.com"
'indico o endereço do destinatário da mensagem
mail.addAddress "oqueseja@seudominio.com"
'indico o corpo da mensagem
mail.body = corpo
'o envio
'certifico-me que não se apresentem erros na página se se produzem
On Erro Resume Next
mail.send
if Err ><0 then
response.write "Erro, não pode completar a operação"
else
response.write "Obrigado por preencher o formulário. Foi enviado corretamente." end if


Podemos nos guiar pelos comentários para termos uma idéia do funcionamento deste pedaço de código. Basicamente cria-se o objeto mail, que conterá o correio que vai ser gerado, e definem-se suas propriedades como o servidor de correio a utilizar, o destinatário ou o assunto. Logo, envia-se e realiza-se uma simples tarefa de detecção de erros para saber se a tarefa pôde ser realizada com êxito ou não e mostrar uma mensagem adequada para cada caso.

Nota: Não se pretende explicar os pormenores deste Control Activex do servidor, já que existe uma excelente documentação e exemplos na página web da empresa que o desenvolveu. Neste caso de que se deseja aprender algo mais, por favor, dirijam-se à página www.aspemail.com ou a do componente o qual disponham.





Comentários do artigo
Foram enviados 4 comentários ao artigo
3 comentários não revisados
1 comentário revisado:
Por: clionis rangel fernandes dos santos
10/3/07
Adorei a explicação de formulários em PHP,E outras aplicações PARABÉNS

Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato