Tema: Web App
Pregunta: Como enviar un email validando el dominio
Respuesta:
Hola esta es mi primer aportacion que hago devolviendo a la comunidad .net, lo mucho que me ha dado espero que les serva este codigo y lo adapten asus necesidades,, ha este codigo tiene los creditos de rootk ya que el en realidad me paso el esqueleto y yo lo adapte a mi codigo,,, espero que les sirva ya que es de gran utilidad para mandar mails con webforms
'*******************************Funcion para validar mail******************************************
Function isEmail(ByVal inputEmail As String) As Boolean
Dim strRegex As String = "^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" + _
"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" + _
".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"
Dim re As New System.Text.RegularExpressions.Regex(strRegex)
'Si es correcta la direccion despues hago un split para
'obtener el nombre del dominio y checarlo a través de mi
'funcion
If re.IsMatch(inputEmail) Then
'Return (True)
dim ve
dim asplit as string= inputEmail
Dim add() As String = asplit.Split("@")
ve = add.GetValue(1)
' Despues de hacer split le mando la variable v
' para validar dominio
CheckHost(ve)
Else
' en caso que el email no se va valido por no tener todos los caractes
' mando una ventana de javascript para dar el error
dim JSc as string = "<script language=javascript>window.alert('Email "& inputEmail & " invalido');<" & "/script>"
response.write(JSc)
End If
End Function
' ************************************************** *****************
'************************************************* *******************
' Funcion para revisar el domino del email
Private Function CheckHost(ByVal add As String) As Boolean
Dim hostInfo As System.Net.IPHostEntry
Try
hostInfo = System.Net.Dns.GetHostByName(add)
Dim ix As System.Net.IPHostEntry = hostInfo
'Return True
'si es valido el domino mando el mail llamando esta funcion
mandar_email()
Catch exc As Exception
' si es incorrecto mando el mensaje con una ventana de javascript
dim JScript as string = "<script language=javascript>window.alert('DOMIIO "& add &" NO VALIDO');<" & "/script>"
response.write(JScript)
End Try
End Function
'************************************************* ************************
'************************** Boton del mail ******************************
Sub ValidateBtn_Click(sender As Object, e As EventArgs)
dim validamail as string = email.Text
'funcion que le manda el mail.text para revisarlo
isEmail(validamail)
End Sub
'************************************************* **************
function mandar_email()
Dim objEmail as New MailMessage()
objEmail.To = maildelfi.Text
objEmail.From = email.Text
objEmail.Subject = asunto.Text
objEmail.Body = "<strong>Escrito por:</strong> " & nombre.Text & "<br><br><strong>Comentario:</strong><br> " & comenta.Text
objEmail.Priority = MailPriority.High
objEmail.BodyFormat = MailFormat.Html
SmtpMail.SmtpServer = "mail.tuservercom"
try
SmtpMail.Send(objEmail)
Response.redirect("tanq.aspx")
catch exc as Exception
Response.Write("Send failure: " + exc.ToString())
End Try
End Function
</script>
<html>
<body >
<form runat="server">
<table width="400" border="0" align="left" cellpadding="0" cellspacing="0">
<tr>
<td>
<table width="400" border="0">
<tr>
<td width="64" height="20">
<font face="Verdana" color="white" size="2"> Nombre:</font>
</td>
<td width="85">
<ASP:TextBox id="nombre" runat="server"></ASP:TextBox>
</td>
<td width="388">
<asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ForeColor="WhiteSmoke" Display="dynamic" ErrorMessage="Debes scribir tu nombre" ControlToValidate="nombre">
* </asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td width="64" height="20" >
<font face="Verdana" color="white" size="2"> Email:</font>
</td>
<td width="85">
<ASP:TextBox id="email" runat="server"></ASP:TextBox>
</td>
<td>
<asp:RequiredFieldValidator id="RequiredFieldValidator4" runat="server" ForeColor="WhiteSmoke" Display="Dynamic" ControlToValidate="email" Font-Name="Verdana" Font-Size="10pt">
* </asp:RequiredFieldValidator>
<asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" ForeColor="WhiteSmoke" ControlToValidate="email" Font-Name="verdana" Font-Size="9pt" Font-Names="verdana" Width="130px" ValidationExpression=".*@.*\..*">
Ingresa mail correcto </asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td width="64" height="20">
<font face="Verdana" color="white" size="2"> Asunto:</font>
</td>
<td width="85">
<ASP:TextBox id="asunto" runat="server"></ASP:TextBox>
</td>
<td width="388">
<asp:RequiredFieldValidator id="validasun" runat="server" ForeColor="WhiteSmoke" Display="dynamic" ErrorMessage="Debes scribir tu asunto" ControlToValidate="asunto">
* </asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td height="20">
<font face="Verdana" color="white" size="2"> Para:</font>
</td>
<td>
<ASP:TextBox id="maildelfi" runat="server"></ASP:TextBox>
</td>
<td>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td >
<table width="400" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="26" height="52">
<font face="Verdana" size="2"> </font></td>
<td width="233" height="52">
<font face="Verdana" color="white" size="2">
Comentario</font>
<br />
<asp:TextBox id="comenta" runat="server" Width="221px" Height="72px" TextMode="MultiLine"></asp:TextBox>
</td>
<td width="125">
<asp:RequiredFieldValidator id="RequiredFieldValidator5" runat="server" ForeColor="WhiteSmoke" Display="dynamic" ErrorMessage="Debes scribir tus comentarios" ControlToValidate="comenta">
* </asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td height="32">
</td>
<td>
<ASP:Button id="Button1" onclick="ValidateBtn_Click" runat="server" ForeColor="DarkBlue" BackColor="#E0E0E0" text="Enviar"></ASP:Button>
</td>
<td>
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>
gracias a todos