Do you have a mailing list? Do you collect email addresses? Are you tired of getting bounce backs every time you perform a mailing? aspNetMX will solve your email validation problems.
aspNetMX is an assembly that requires the Microsoft .NET framework to run. It is used to validate email addresses at different levels. aspNetMX does not have a GUI front end, it is a server component that can only be accessed programmatically.
aspNetMX can be used on signup forms or it can validate huge lists of email addresses from one address to millions. It has built in high performance features that aren't found anywhere else. After almost a year in development and planning, aspNetMX will solve all of your email validation problems.
aspNetMX validates email addresses at four different levels. Syntax, MXRecords (Domain), SMTP, and Mailbox levels. To validate an email address, simply create the aspNetMX object, pass it the email address and the level of validation to check, and aspNetMX will do the rest. For some code examples on how to use aspNetMX, click here.
aspNetMX does not actually send an email, but it can check the remote mail server to see if the server will accept an email for that address. The only way to truly check to see if an email address is valid, is to send an email. Here's a more detailed explanation of the 4 levels of validation provided by aspNetMX.
The syntax level is the easiest validation to perform. When an email is checked for MXValidateLevel.Syntax, the email address is verified to be syntactically correct.
aspNetMX checks to see if an email address is both syntactically correct and makes a DNS network call to verify the domain name part of an email address has MX Records.
aspNetMX checks all of the above levels, and opens a network connection to the remote email address's mail server, to verify the mail server does exist. aspNetMX then immedately closes the connection.
aspNetMX checks all of the above levels, plus, aspNetMX initiates standard RFC SMTP commands against the remote mail server to validate the mail server will accept an email for the address.
When Validate() is executed, it attempts to validate an email address UP TO the level that was specified. If the validation was successful, it returns that level. If the validation was NOT successful, it returns the last highest level of validation that was found. This allows you to vary actions, based upon the level of validation returned. For example
MXValidate mx = new MXValidate();
string email = "email@example.com";
MXValidateLevel level = mx.Validate( email, MXValidateLevel.Mailbox );
switch( level )
//bad email address, remove from email address list
//the email address is syntactically correct
//mx records were found, but for some reason
//the SMTP server couldn't be found
//save email for checking later, and see if SMTP servers fail again
//able to connect to the mail server
//but mail server said email address was bad
//remove from list
//the email address validated to the mail box level
//and the mail server will accept email for that address
Allows you to take different actions based upon the result from aspNetMX. If only MXValidateLevel.MXRecords was achieved, perhaps a network connection was down, and the email address could be flagged for later validation, where as if MXValidateLevel.SMTP was returned, that means a successful connection was made to the mail server, but for some reason it was rejected. The email address is probably bad.
A Word about Email Validation
Email validation is a tricky process. aspNetMX has made this process incredibly simple and powerful. The only correct way to verify an email address exists is to send a mailbox an email and see if you receive a bounce back email or NDR (Non-Deliverable Receipt). aspNetMX goes as far as possible in attempting to validate email addresses WITHOUT sending an actual email.
There are a couple of issues to be aware of when validating email addresses at the MXValidateLevel.Mailbox level.
Positive Validation when a Mailbox doesn't exist
Some mail servers always return a positive response that a mailbox exists, and it is only until an email is sent to a mailbox, that the server responds with a negative response saying a mailbox does not exist. Microsoft's exchange server is notorious for doing this. However, we have optimized aspNetMX to help with this situation, and return faster results against these known servers.
MXValidateLevel.Mailbox can be a Time Intensive Process
To better explain what happens under the covers when an email addresses is tested to Mailbox level, the following steps occur:
aspNetMX has been highly optimized, unfortunately, most of the time-intensive issues that affect email validation are outside of the control of aspNetMX.
These include the across-the-internet or across-the-network DNS lookups, and the across-the-internet SMTP calls. Depending upon your network speed,
and the remote SMTP server, the whole process may be completed in a few milliseconds, however, we've seen it take as long as 60 seconds. To help with this, aspNetMX utilizes a number of built-in higher-performance techniques.
Check out aspNetMX's High Performance Features.
Copyright - Contact: Webmaster
Last Updated: Wednesday, June 24, 2020