Learning never exhausts the mind
Home >  Coding > C# ASP.Net MVC > Best Way to Validate Email Addresses in C#

First published on by Updated

It used to be that a RegEx was the best method for validating email addresses in C#, but with all the new Top Level Domains (TLD's) flying around and new ones being released, this is becoming an increasingly difficult task.

So instead, why not let Microsoft do the hard work of validating email addresses in C#? Their .Net library gets updated regularly with all the new validation methods automatically across all platforms (forms, asp.net etc..) meaning you need only call their methods from your code and you are up to date.

Instead of using a regular expression to validate an email address, you can use the System.Net.Mail.MailAddress class. To determine whether an email address is valid, pass the email address to the MailAddress.MailAddress(String) class constructor.

Source: Microsoft ASP.Net Website

public bool IsEmailValid(string emailaddress)
        MailAddress m = new MailAddress(emailaddress);
        return true;
    catch (FormatException)
        return false;
2 thoughts on “Best Way to Validate Email Addresses in C#
  • 23rd May 2019 at 9:54 am

    Both methods consider the following email address valid:


    Some would argue that's a valid email address, but for most intents and purposes, it's not valid. However both the MailAddress class and the System.ComponentModel.DataAnnotations attribute approach consider that valid.

  • 17th April 2019 at 8:48 pm

    Another way to validate an email address is to use the EmailAddressAttribute class's IsValid method:

    var isValid = new EmailAddressAttribute().IsValid(EmailAddress);

    This class is in the System.ComponentModel.DataAnnotations namespace.


Leave a Reply

Fields marked with * are mandatory.

We respect your privacy, and will not make your email public. Hashed email address may be checked against Gravatar service to retrieve avatars. This site uses Akismet to reduce spam. Learn how your comment data is processed.