5 abril, 2013

Verificar en C# el formato de una dirección de e-mail

[singlepic id=4 w=320 h=240 float=right]Cuando queremos que el usuario introduzca una dirección de e-mail en nuestro programa en C#, siempre nos queda la duda si la dirección es correcta o no. El siguiente código en C# nos permite comprobar que la dirección de e-mail que se introduzca este por lo menos en su formato correcto, es decir, «nombre»@»Dominio».»extensión». Esta comprobación no asegura que la dirección sea valida, solo que el formato introducido es el correcto.

Para hacer la comprobación nos ayudamos de la clase Regex, esta función permite mediante un patrón verificar si una cadena cumple con ese patrón  Para poder utilizar la clase Regex tenemos que añadir el siguiente nombre de espacio

using System.Text.RegularExpressions;

Código  que comprueba el formato del e-mail introducido:

public static bool ComprobarFormatoEmail(string sEmailAComprobar)
{ 
    String sFormato; 
    sFormato = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
    if (Regex.IsMatch(seMailAComprobar, sFormato)) 
    {
        if (Regex.Replace(seMailAComprobar, sFormato, String.Empty).Length == 0) 
        { 
            return true; 
        } 
        else
        { 
            return false; 
        } 
    } 
    else
    { 
        return false;
    }
}

La función nos devolverá «true», si el formato del email es correcto, o «false» si el formato del email es incorrecto. Ejemplo de como trabajar con la función.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

// Para la función regex
using System.Text.RegularExpressions;

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

        public static bool ComprobarFormatoEmail(string seMailAComprobar)
        { 
            String sFormato; 
            sFormato = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
            if (Regex.IsMatch(seMailAComprobar, sFormato)) 
            {
                if (Regex.Replace(seMailAComprobar, sFormato, String.Empty).Length == 0) 
                { 
                    return true; 
                } 
                else
                { 
                    return false; 
                } 
            } 
            else
            { 
                return false;
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (ComprobarFormatoEmail(tbEmail.Text) == false)
            {
                lEmailCorrecto.Text = "Dirección no valida";
                lEmailCorrecto.ForeColor = Color.Red;
            }
            else
            {
                lEmailCorrecto.Text = "Dirección valida";
                lEmailCorrecto.ForeColor = Color.Green;
            }
        }
    }
}

Puedes descargar todos los ficheros desde aquí.

[dl url=»http://todavianose.com/wp-content/uploads/Ficheros/Verificar_Correo.rar» title=»Descargar» desc=»Verificar Email en C#» target=»_blank»]

 

Y esto es todo, sabiendo que el formato del email  es correcto, la siguiente comprobación seria saber si la dirección es valida, es decir, si pertenece a una cuenta real. Pero eso sera para otro post.