Skip to content
| Marketplace
Sign in
Visual Studio>Controls>EmailVerify.NET
EmailVerify.NET

EmailVerify.NET

Efran Cobisi [cobisi.com]

|
4,411 clicks
| (1) | Free Trial
EmailVerify.NET is a powerful Microsoft .NET component that verifies e-mail addresses with various tools, including advanced syntax verification, DNS and disposable e-mail address validation, SMTP availability and mailbox existence checking, with greylisting support.
Get Started

EmailVerify.NET header

EmailVerify.NET is a powerful Microsoft .NET software component that verifies e-mail addresses with various tools, including:
  • Advanced syntax verification, according to IETF standards (RFC 2821 and RFC 2822, among others)
  • DNS validations, including MX record(s) lookup
  • Disposable e-mail address (DEA) validation
  • SMTP connection and availability checking
  • Mailbox existence checking, with greylisting and temporary unavailability support
  • Catch-all testing
It is written completely in managed code (C#) and is compliant with Common Language Specification (CLS), so it can be used with any other .NET language, including VB.NET, C++/CLI, J#, IronPython, IronRuby, and F#.


Easy to Use

Designed from the ground up to make the developer's life easier, EmailVerify.NET's whole architecture lets you perform a full e-mail validation with just a single method call, whether the job is as simple as a syntax check or as complex as a mailbox existence test.

Here's what it takes to validate an e-mail address:


var verifier = new EmailVerifier();
var result = verifier.Verify("john@example.com", VerificationLevel.Mailbox);

if (result.IsSuccess)
{
    Console.WriteLine("The mailbox exists!");
}


Could it be any simpler? Of course not. ;)



Powerful and Completely Configurable

With a very stable and mature code base, EmailVerify.NET supports six different e-mail address verification depths and allows you to configure every possible aspect of the validation process, including adherence to IETF standards preferences, network-related settings, and timeouts for multi-threaded activities.

In the following snippet, for example, EmailVerify.NET is configured not to allow domain literals in e-mail addresses, while allowing comments and quoted strings. Furthermore, the component is set to use a particular DNS server (instead of a system-configured server) for its lookups:


verifier.AllowDomainLiterals = false;
verifier.AllowComments = true;
verifier.AllowQuotedStrings = true;

// The component will use just the provided DNS server for its lookups

verifier.DnsServers.Clear();
verifier.DnsServers.Add(IPAddress.Parse("10.0.1.18"));


On top of that, the component exposes various events that notify the user about any change in the e-mail address validation's progress, including verifications starts/ends and depths advancements. This way, whether your project is a desktop-based application, Web-based, or a class library, you may use these notifications to react accordingly at every phase of the verification activity, as well as to present a message to the end user or to insert a row into a database.

For example, this is the way to bind to one of the provided events and write a message to the console every time there is progress in the validation process:


verifier.VerificationTaskProgressChanged += (sender, args) =>
{
    Console.WriteLine("The address {0} reached level {1}",
        args.Task.EmailAddress,
        args.CurrentLevel);
};



High Performance

EmailVerify.NET internally employs a very fast, multi-threaded e-mail address validation engine capable of processing hundreds of items at once using asynchronous-based processing logic and different optimization algorithms. Furthermore, the component exposes dedicated methods and structures to track down and configure each verification activity that may take place in every asynchronous scenario at optimal performance.

In the following snippet, for example, EmailVerify.NET is fed with a structure internally optimized for reducing delays and network transmissions, while obeying a configurable amount of time between each verification to the same SMTP server. thus respecting Netiquette and avoiding being tagged as a spammer by the external mail exchangers.


var group = new VerificationTaskGroup();

group += new VerificationTask("alice@example.com", VerificationLevel.Dns);
group += new VerificationTask("bob@example.net", VerificationLevel.Syntax);
group += new VerificationTask("mike@example.org", VerificationLevel.Smtp);

verifier.VerifyAsync(group);



Finally, like as in the single validation scenario described above, the component exposes different events that notify the user about changes in the life cycle of each group of validations and their related tasks. These events may be used to track down the overall progress of a given set of multiple addresses, for example, and possibly feed a user interface element of your project, like such as a progress bar or a list of messages.


verifier.VerificationTaskGroupProgressChanged += (sender, args) =>
{
    Console.WriteLine("Group percent processed: {0}%",
        args.ProgressPercentage);
};

verifier.VerificationTaskGroupCompleted += (sender, args) =>
{
    Console.WriteLine("Whole group completed!");
    Console.WriteLine("{0} items processed.",
        args.TaskGroup.Count);
};



Need more information? Check out our website! ;)

For more information about EmailVerify.NET please visit our website athttp://www.emailverify.net or contact ourcustomer support, we will be more than happy to assist you. Thanks!
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft