Como usar o componente AspEmail?
O componente AspEmail é um componente que tem como propósito envio de e-mails.
Ele é utilizado no processamento de formulários de e-mail.
Existe um detalhe que deve ser observado sempre, os campos que são preenchidos no formulário devem ser obrigatóriamente referenciados no script.
No exemplo abaixo, consideramos um formulário simples com os campos de Nome, E-mail, Assunto e mensagem.
Crie um arquivo dentro da sua hospedagem com o conteúdo abaixo e nomeie-o como formulario.asp:
<table width="40%" border="1" align="left">
<tr>
<td>
<%
Dim Mail ' objeto mail
Dim FromName ' nome do remetente
Dim FromEmail ' endereço de E-mail do remetente
Dim ToEmail ' endereço do destinatario
Dim Subject, strBody ' corpo da mensagem
Dim ThisPage ' o endereco do seu site
Dim RefPage ' a referencia URL
Dim Val_Input ' variável Booleana usada na validação
Dim meusmtp
Dim minhacontaautenticada
Dim minhasenhaparaenvio
'Abaixo seguem algumas definicoes de variaveis para o envio de seu formulario. Por favor preencha os campos abaixo.
meusmtp = "smtp.seudominio.com" ' Informacoes so seu servidor SMTP
minhacontaautenticada = "conta@dominio.com" ' conta de e-mail utilizada para enviar
minhasenhaparaenvio = "senha" ' senha da conta de e-mail
emaildestino = "e-maildedestino@dominio.com" ' e-mail que vai receber as mensagens do formulario
'Fim da definição manual de parâmetros.
' Retorna o nome do arquivo de script e a url da pagina
ThisPage = Request.ServerVariables("SCRIPT_NAME")
RefPage = Request.ServerVariables("HTTP_REFERER")
strBody = Trim(Request.Form("Message"))
Subject = Trim(Request.Form("Subject"))
ToEmail = emaildestino
FromName = Trim(Request.Form("FromName"))
FromEmail = Trim(Request.Form("FromEmail"))
val_ent = True
val_ent = val_ent And FromName <> ""
val_ent = val_ent And val_email(FromEmail)
val_ent = val_ent And val_email(ToEmail)
If val_ent Then
Set Mail = Server.CreateObject("Persits.MailSender")
Mail.Host = meusmtp
Mail.Port = 587
Mail.Username = minhacontaautenticada
Mail.Password = minhasenhaparaenvio
Mail.From = FromEmail
Mail.FromName = FromName
Mail.AddAddress ToEmail
Mail.Subject = Subject
Mail.Body = "Dados"& vbCrLf & _
"Nome:"& Request("FromName")& vbCrLf & _
"E-Mail:"& Request("FromEmail")& vbCrLf & _
"Assunto:"& Request("Subject")& vbCrLf & _
"Mensagem:"& Request("Message")
Mail.Send
mensagem_erro = ""
if err <> 0 then
mensagem_erro = "Ocorreu o erro: " & Err.description
end if
Mail.CharSet = "ISO 8859-1"
Set Mail = Nothing
on error goto 0
response.write "<P><b>Sua mensagem foi enviada com sucesso!</P></b>"
Else
If "http://" & Request.ServerVariables("HTTP_HOST") & ThisPage = RefPage Then
Response.Write "Verifique os campos por favor!" & "<BR>" & vbCrLf
End If
Forms_x ThisPage, FromName, FromEmail, Subject, strBody
End If
Function val_email(strEmail)
Dim xVal
xVal = True
If Len(strEmail) < 5 Then
xVal = False
Else
If Instr(1, strEmail, " ") <> 0 Then
xVal = False
Else
If InStr(1, strEmail, "@", 1) < 2 Then
xVal = False
Else
If InStrRev(strEmail, ".") < _
InStr(1, strEmail, "@", 1) + 2 Then
xVal = False
End If
End If
End If
End If
val_email = xVal
End Function
Sub Forms_x (strPageName, FromName, FromEmail, Subject, strBody) %>
<html>
<head>
<title>Formulário de Contato</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div align="center">
<p><font face="Arial, Helvetica, sans-serif" size="2"><b><font color="#FF0000" size="4" face="Times New Roman, Times, serif">Formulário de
Contato</font></b></font></p>
<FORM ACTION="<%=strPageName%>" METHOD="post" name=frmReferral>
<TABLE BORDER="0">
<TR>
<TD VALIGN="top" ALIGN="right">
<STRONG>Nome:</STRONG></TD>
<TD><INPUT TYPE="text" NAME="FromName" VALUE="<%=FromName%>" SIZE="50"></TD>
</TR>
<TR>
<TD VALIGN="top" ALIGN="right">
<STRONG>E-mail:</STRONG></TD>
<TD><INPUT TYPE="text" NAME="FromEmail" VALUE="<%=FromEmail%>" SIZE="50"></TD>
</TR>
<TR>
<TD VALIGN="top" ALIGN="right">
<STRONG>Assunto:</STRONG></TD>
<TD><INPUT TYPE="text" NAME="Subject" VALUE="<%=Subject%>" SIZE="50"></TD>
</TR>
<TR>
<TD VALIGN="top" ALIGN="right">
<STRONG>Mensagem:</STRONG></TD>
<TD><TEXTAREA NAME="Message" COLS="50" ROWS="5" WRAP="virtual" >
<%=strBody%></TEXTAREA>
</TR>
<TR>
<TD></TD>
<TD><INPUT TYPE="submit" VALUE="Enviar" class="botoes" name=rstReferral>
<INPUT TYPE="reset" VALUE="Limpar" class="botoes" name=subReferral></TD>
</TR>
</TABLE>
</FORM>
</td>
</tr>
</table>
</body>
</html>
<% End Sub %>
OBSERVAÇÕES:
- Substitua as informações de SMTP solicitadas no código acima pelos dados do domínio temporário existentes em seu painel de controle(assim mesmo sem transferir os DNS´s, você poderá testar o formulário) e os dados da conta de e-mail de acordo com a caixa que você pretende utilizar.
- Lembre-se de criar a caixa postal que irá ser utilizada para a autenticação via Painel de Controle.
- Consulte as políticas de envio de e-mail pelo servidor de hospedagem na FAQ:
http://ajuda.uolhost.com.br/index.php?ind=&p=resposta&res=566
Eventualmente, sua aplicação pode utilizar o Charset UTF-8. Nestes casos, o uso do exemplo acima poderá ocasionar o envio de mensagens com caracteres estranhos. Se isto ocorrer, sugerimos que você adapte a utilização do script conforme os passos abaixo. Se ainda assim persistir este comportamento, recomendamos fortemente que você verifique se a programação da aplicação em si não possui outras áreas de controle de Charset.
1 - Salve o arquivo formulario.asp no formato UTF-8, para isso, você pode utilizar o Bloco de Notas, vá em "Salvar Como" e defina o item "Codificação" como UTF-8;
2 - Substitua as linhas abaixo que definem o charset:
De: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Para: <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
De: Mail.CharSet = "ISO 8859-1"
Para: Mail.CharSet = "UTF-8"
OBS: Caso você tenha constatado algum tipo de dificuldade ao enviar e-mails através de formulários ou scripts hospedados junto ao UOL HOST, recomendamos que consulte nossa FAQ:
http://ajuda.uolhost.com.br/index.php?ind=&p=resposta&res=1286