Está en la página 1de 5

Algoritmo para validar correo electrónico

Correo_electronico@gmail.com

Usuario Nombre de dominio Sufijo

Captura de restricciones
Código C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Security.Policy;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Verificar_correo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void btnVerificar_Click(object sender, EventArgs e)


{
//Verificar @
if (Regex.Matches(txtCorreo.Text, "@").Count < 1)
{
MessageBox.Show("Falta la arroba | @", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtCorreo.Select();
}
else
{

if (Regex.Matches(txtCorreo.Text, "@").Count > 1)


{
MessageBox.Show("Tiene más de 1 arroba | @", "Atención", MessageBoxButtons.OK,
MessageBoxIcon.Information);
txtCorreo.Select();
}
else
{
//dividir partes del correo | delimitador('@')

string[] palabras = txtCorreo.Text.Split('@');


if (palabras.Length == 2)
{

//Validar antes del arroba


string antes = palabras[0];

if (antes.Length < 2)
{
MessageBox.Show("El usuario de correo electrónico no puede contener menos de 2 caracteres (a-z) (0-
9)", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtCorreo.Select();
}
else
{
if ((antes.Contains("__")) || (antes.Substring(0, 1) =="_" ) || (antes.Substring(antes.Length - 1, 1) == "_"))
{
MessageBox.Show("El usuario de correo electrónico no es válido", "Atención",
MessageBoxButtons.OK, MessageBoxIcon.Information);
txtCorreo.Select();
}
else
{

var matches = Regex.Matches(antes, @"[aA-zZ0-9_]");

if (antes.Length != matches.Count)
{
MessageBox.Show("El usuario de correo electrónico solo permite letras (a-z), números (0-9) y
guión bajo ( _ )", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtCorreo.Select();
}
else
{

//Validar depues del arroba


string despues = palabras[1];

if (despues.Length < 5)
{
MessageBox.Show("El dominio del correo electrónico no puede contener menos de 6 caracteres
(a-z) (0-9) (.)", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtCorreo.Select();
}
else
{

matches = Regex.Matches(despues, @"[aA-zZ0-9.]");

if (despues.Length != matches.Count)
{
MessageBox.Show("El nombre de dominio solo permite letras (a-z), números (0-9) y el punto
(.)", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtCorreo.Select();
}
else
{

int pos = 0;
int veces = 0;

while (despues.IndexOf(".", pos) >= 0)


{
pos = despues.IndexOf(".", pos) + 1;
if (pos >= 0)
{
veces = veces + 1;
}
}

if (veces < 1)
{
MessageBox.Show("Hace falta el punto de dominio | .", "Atención",
MessageBoxButtons.OK, MessageBoxIcon.Information);
txtCorreo.Select();
}
else
{

string nombredominio = despues.Split('.')[1];

if (nombredominio.Length < 1)
{
MessageBox.Show("Falta el sufijo de dominio", "Atención", MessageBoxButtons.OK,
MessageBoxIcon.Information);
txtCorreo.Select();
}
else
{

if (veces > 1)
{
MessageBox.Show("No puede haber más de 1 punto despues del arroba | .",
"Atención", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtCorreo.Select();
}
else
{
if (veces == 1)
{

string dominio = despues.Split('.')[1];


if (dominio.Length < 2)
{
MessageBox.Show("Falta el sufijo del dominio.\n(Debe contener dos o más letras
para ser válido)", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtCorreo.Select();

}
else
{
if ((dominio == "net") || (dominio == "com") || (dominio == "org") || (dominio ==
"biz") || (dominio == "info")
|| (dominio == "hn"))
{
MessageBox.Show("Correo válido","Éxitoso",MessageBoxButtons.OK);
}
else
{
MessageBox.Show("El sufijo del dominio no es válido.", "Atención",
MessageBoxButtons.OK, MessageBoxIcon.Information);
txtCorreo.Select();

}
}

}
}
}
}

}
}
}
}
else
{
MessageBox.Show("El correo tiene más de 1 arroba | @", "Atención", MessageBoxButtons.OK,
MessageBoxIcon.Information);
return;
}
}

private void txtCorreo_KeyDown(object sender, KeyEventArgs e)


{
if (e.KeyCode == Keys.Enter)
{
btnVerificar.PerformClick();
}
}
}
}

También podría gustarte