Uma forma simples e eficaz de se mandar um email com informações de um formulário, é o uso do componente do CDONTS ( Collaborative Data Objects for Windows NT Server ), permite o envio de email em formato texto ou HTML.
Abaixo, veja o código em HTML necessário para o formulário:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Contatos - Via CDONTS</title></head>
<body bgcolor="#FFFFFF">
<div align="center">
<form name="form1" action="Enviar_email.asp" >
<p>Nome: <br>
<input type="text" name="txtnome">
</p>
<p>Email: <br>
<input type="text" name="txtemail">
</p>
<p>Comentário: <br>
<textarea name="txtcomentario" cols="50" rows="10"></textarea>
</p>
<p>
<input type="submit" name="Submit" value="Enviar">
</p>
</form>
</div>
</body>
</html>
A action do form esta direcionado para http://www.seuservidor.com.br/suapasta/enviar_email.asp onde é uma url de exemplo, você deverá substituir de acordo com o seu servidor.
Código do arquivo enviar_email.asp
<%
Option Explicit
Dim var_nome, var_mail, var_comentario, var_to, EnviarMail, MsgBody
var_nome = Request.QueryString("txtnome")
var_mail = Request.QueryString("txtemail")
var_comentario = Request.QueryString("txtcomentario")
var_to = "andreluisbassi@hotmail.com"
Set EnviarMail = Server.CreateObject("CDONTS.NewMail")
EnviarMail.To = var_to
EnviarMail.From = var_mail
EnviarMail.Subject = "Meu Site - Contatos"
MsgBody = "<html>" _
& "<head>" _
& "</head>" _
& "<body bgcolor=""#FFFFFF"">" _
& "<p align=""center""><font face=""Verdana, Arial, Helvetica, sans-serif"" size=""2"">Você recebeu uma mensagem de <b>" & var_nome & "</b>, email <b>" & var_mail & "</b> e fez o seguinte comentário:</font></p><p align=""center""><font face=""Verdana, Arial, Helvetica, sans-serif"" size=""2""><b>" & var_comentario & "</b></font></p>" _
& "</body>" _
& "</html>"
EnviarMail.Body = MsgBody
EnviarMail.Importance = 1
EnviarMail.BodyFormat = 0
EnviarMail.MailFormat = 0
EnviarMail.Send
Set EnviarMail = Nothing
Response.redirect "Obrigado.html"
%>
Entendendo o Código:
Option Explicit
Indica que todas as variáveis devem ser declaradas, isso deixa sua aplicação mais rápida.
Dim var_nome, var_mail, var_comentario, var_to, EnviarMail, MsgBody
Logo em seguida declaramos todas as variáveis que serão manipuladas.
var_nome = Request.QueryString("txtnome")
var_mail = Request.QueryString("txtemail")
var_comentario = Request.QueryString("txtcomentario")
Recuperamos os valores digitados no formulário.
var_to = "andreluisbassi@hotmail.com"
Definimos a variável com o email, para aonde as informações serão enviadas.
Set EnviarMail = Server.CreateObject("CDONTS.NewMail")
Instancia o objeto do CDONTS através da variável EnviarMail.
EnviarMail.To = var_to
A propriedade TO permite especificar o endereço do destinatário, onde var_to é a varíavel que esta armazenado o email de destino, que seria "andreluisbassi@hotmail.com"
EnviarMail.From = var_mail
A propriedade From permite especificar o endereço do remetente, onde var_mail é a varíavel que esta armazenado o valor recuperado do campo do formulário Email, que seria Request.QueryString("txtemail")
EnviarMail.Subject = "Meu Site - Contatos"
A propriedade Subject permite especifcar o assunto da mensagem.
A varíavel MsgBody ( veja o conteúdo dela acima ) é onde esta armazenado todo o codigo HTML concatenado e definido como string, para o CDONTS poder processar o email, e quando houver a necessidade de quebrar linha utilize o UnderScore ( _ ) , utilize o & para continuar definindo após a quebra, exemplo:
MsgBody = "HTML" _
& "HEAD" _
& "<TITLE>Exemplo de concatenação de HTML em uma varíavel</TITLE>" _
& "<p align=""center""><font face=""Verdana, Arial, Helvetica, sans-serif"" size=""2"">Você recebeu uma mensagem de" & var_nome & "</p>"
Importante notar que quando existir " ( aspas ) em um código html por exemplo <p align="center"> reformate o código colocando aspas duplas, por exemplo <p align=""center"">
Se necessitar exibir o conteúdo das varíaveis var_nome, var_mail e var_comentario ou até mesmo executar uma função dentro da varíavel MsgBody por exemplo, insira a varíavel ou função entre & por exemplo:
& "<font face=""Verdana, Arial, Helvetica, sans-serif"" size=""2"">Você recebeu uma mensagem de" & var_nome & "</p>"
EnviarMail.Body = MsgBody
A propriedade Body define o texto da mensagem ou do HTML, onde MsgBody é a varíavel que esta armazenado o HTML da mensagem Concatenado e coma programação necessária.
EnviarMail.Importance = 1
A propriedade Importance define o nível de prioridade ao enviar a mensagem, veja a tabela abaixo:
Valor |
Significado |
0 |
Prioridade Baixa |
1 |
Prioridade normal (padrão) |
2 |
Prioridade alta |
EnviarMail.BodyFormat = 0
A propriedade BodyFormat defini qual é o formato que a mensagem será enviada, se for definido o valor 1 a mensagem será enviada como texto, se indicarmos a propriedade por 0, a mensagem será enviada em formato HTML.
EnviarMail.MailFormat = 0
A propriedade MailFormat defini qual o tipo de codificação MIME a ser usado, onde com o valor 0 indica que o MIME interprete o HTML, no caso se usarmos o valor 1 o MIME interpretará a mensagem como texto.
EnviarMail.Send
A propriedade Send, quando é executada, a mensagem é processada e enviada ao seu destinátario.
Set EnviarMail = Nothing
O objeto EnviarMail é encerrado e liberado
Response.redirect "Obrigado.html"
Após enviar a mensagem, redirecionamos para um arquivo em HTML simples, agradecendo o contato.
André Luis Bassi é desenvolvedor em ASP, onde presta serviço para diversas empresas.
Esta matéria foi postada originalmente no ASP4Developers por André Luis Bassi (site), que na época era "Webmaster / DBA / Programador". Hoje, vai saber...