bom, essa eu realmente não fazia idéia! mas baseado em algumas funções que vi! montei essa: <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Const FHMailNulo = ""
Const FHMailErro = "Erro de Sintaxe"
Const FHMailOK = "E-Mail Certo"
Function FHMail(EMail)
Dim SizeMail, Contador, Caracter, Estagio
EMail = UCase(Trim(EMail))
SizeMail = Len(EMail)
If EMail <> "" Then
Estagio = "EmailC1"
For Contador = 1 To SizeMail
Caracter = Mid(EMail, Contador, 1)
If Caracter >= "A" And Caracter <= "Z" Then
Caracter = "Letra"
ElseIf Caracter >= "0" And Caracter <= "9" Then
Caracter = "Numero"
ElseIf Caracter = "-" Or Caracter = "_" Then
Caracter = "Traco"
End If
Select Case Caracter
Case "Letra"
Select Case Estagio
Case "EmailC1"
Estagio = "EmailC2"
Case "EmailC2"
Estagio = "EmailCx"
Case "EmailCx"
Estagio = "EmailCx"
Case "Dominio1C1"
Estagio = "Dominio1C2"
Case "Dominio1C2"
Estagio = "Dominio1Cx"
Case "Dominio1Cx"
Estagio = "Dominio1Cx"
Case "Dominio2C1"
Estagio = "Dominio2C2"
Case "Dominio2C2"
Estagio = "Dominio2C3"
Case "Dominio2C3"
Estagio = "Dominio2C4"
Case "Dominio2C4"
Estagio = "Dominio2C5"
Case "Dominio2C5"
Estagio = "Dominio2Cx"
Case "Extensao1C1"
Estagio = "Extensao1C2"
Case "Extensao1C2"
Estagio = "Extensao1C3"
Case "Extensao1C3"
Estagio = "Extensao1C4"
Case "Extensao1C4"
Estagio = "Extensao1C5"
Case "Extensao1C5"
Estagio = "Extensao1Cx"
Case "Extensao2C1"
Estagio = "Extensao2C2"
Case "Extensao2C2"
Estagio = "Extensao2C3"
Case "Extensao2C3"
FHMail = FHMailErro
Exit Function
End Select
Case "Numero"
Select Case Estagio
Case "EmailC1"
Estagio = "EmailC2"
Case "EmailC2"
Estagio = "EmailCx"
Case "EmailCx"
Estagio = "EmailCx"
Case "Dominio1C1"
Estagio = "Dominio1C2"
Case "Dominio1C2"
Estagio = "Dominio1Cx"
Case "Dominio1Cx"
Estagio = "Dominio1Cx"
Case "Dominio2C1"
Estagio = "Dominio2C2"
Case "Dominio2C2"
Estagio = "Dominio2C3"
Case "Dominio2C3"
Estagio = "Dominio2C4"
Case "Dominio2C4"
Estagio = "Dominio2C5"
Case "Dominio2C5"
Estagio = "Dominio2Cx"
Case Else
FHMail = FHMailErro
Exit Function
End Select
Case "Traco"
Select Case Estagio
Case "EmailCx"
Estagio = "EmailCx"
Case "Dominio1Cx"
Estagio = "Dominio1Cx"
Case Else
FHMail = FHMailErro
Exit Function
End Select
Case "."
Select Case Estagio
Case "EmailCx"
Estagio = "EmailC1"
Case "Dominio1Cx"
Estagio = "Dominio2C1"
Case "Dominio2C3"
Estagio = "Extensao1C1"
Case "Dominio2C4"
Estagio = "Extensao1C1"
Case "Dominio2C5"
Estagio = "Extensao1C1"
Case "Dominio2Cx"
Estagio = "Extensao1C1"
Case "Extensao1C3"
Estagio = "Extensao2C1"
Case "Extensao1C4"
Estagio = "Extensao2C1"
Case "Extensao1C5"
Estagio = "Extensao2C1"
Case "Extensao1Cx"
Estagio = "Extensao2C1"
Case Else
FHMail = FHMailErro
Exit Function
End Select
Case "@"
Select Case Estagio
Case "EmailCx"
Estagio = "Dominio1C1"
Case Else
FHMail = FHMailErro
Exit Function
End Select
Case Else
FHMail = FHMailErro
Exit Function
End Select
' Response.Write("Estágio: " & Estagio & " - Caracter: " & Mid(EMail, Contador, 1) & "<br>") 'Apenas para saber qual é o caracter e estágio em questão (caso de erros), não é necessária
Next
If (Estagio = "Dominio2Cx") Or (Estagio = "Extensao1C5") Or (Estagio >= "Dominio2C3" And Estagio <= "Dominio2C5") Or (Estagio >= "Extensao1C3" And Estagio <= "Extensao1C5") Or (Estagio = "Extensao2C3") Then
FHMail = FHMailok
Exit Function
Else
FHMail = FHMailErro
Exit Function
End If
End If
End Function
Retorno = FHMail(Request.Form("email"))
%>
<%= Retorno %>
<form name="FHMail" method="POST" action="<%= Request.ServerVariables("SCRIPT_NAME") %>">
Teste um e-mail:
<input name="email" type="text" value="<%= Request.Form("email") %>">
<input type="submit" name="Submit" value="Testar">
</form> gostaria da opnião de vocês sobre ela, pois os testes que fiz foram em e-mails tipo: ig@ig.com.br usuario@subdominio.dominio.xxxx.xx mas encontrei um erro, pelo menos acho que é erro. não existe extensão de domínio com numeros (ex.: 999.99), o problema é que não consegui resolver totalmente esse problema! mas minimizei um pouco! obrigado pela ajuda de todos! se alguém encontrar outros erros me fala ai pra tentar solucionar!