What's new in version 2.0 aspNetMX is even more powerful than before. Check out some of the new features in 2.0.
New Events Get even better control with your application with the new events in aspNetMX. Some of these events include the OnServerResponse, OnError, an OnLog event. The new OnServerResponse allows you to inspect the SMTP response, line by line, word for word, so you can exactly see why an email address is rejected. The new OnError event is raised every time an internal exception is thrown. Now you can control if you want that exception suppressed, or thrown. The new OnLog event is raised every time a new log entry is created. Record entries to a central database, your own custom files, or create your own notification program.
New MX Checking Features aspNetMX has even more powerful DNS MX record checking features. We've added the capability to recurse subdomains for the MX records. This helps when the recipient has mis-typed their domain name. aspNetMX also checks the literal domain names, so it validates SMTP servers found at the 'A' record of the domain. Another added bonus is the DnsRetries and DnsRetryPause features. aspNetMX will now retry DNS queries. Because of aspNetMX's speed, we found it was overloading DNS servers. aspNetMX now has the capability to retry queries, and even allow you to specify a pause interval in milliseconds to give your DNS server time to query for MX records.
More Validation Options aspNetMX now has the capability to parse and validate comma separated email addresses. Along with our synchronous methods, aspNetMX has the capability to perform validation asynchronously. aspNetMX also has advanced features such as using the extended HELO command during SMTP validation, and specifying the local endpoint to be used for socket creation.
Better Logging, Debugging and Exception Handling aspNetMX now logs additional debug statements to the validation log for easier troubleshooting. If exceptions are raised, they can now be trapped in the OnError event. If all exceptions want to be ignored, simply set the new ThrowExcpetion property to false. aspNetMX also raises specific exceptions during the validation process. For example DnsExceptions are raised during any DNS query errors.
Along with the new 2.0 features, here are some of the standard high performance features and techniques of aspNetMX.
Validating email addresses to the Mailbox level can be a time intensive process. It is not unusual to encounter slow or non-responsive DNS servers, along with slow or non-responsive SMTP servers, resulting in a single email address validation to take 60 seconds of even longer. Because most of this time intensive process is outside of aspNetMX's control, we've built aspNetMX with these hurdles in mind.
Fail Over DNS Servers aspNetMX has the capability to fail over to responding DNS servers, to responding DNS servers. By default aspNetMX checks your system for your primary DNS server. As a benefit, you can specify specific DNS Servers in the form of a comma-delimited string. aspNetMX will attempt to connect to each one, until a successful connection is made, and then use the first responsive DNS Server for the remainder of the aspNetMX session.
High Performance Internal MX Cache aspNetMX has a built-in high performance internal cache that stores previously looked-up MX Records. For example, once the MX Records for hotmail.com have been determined, aspNetMX no longer makes the expensive DNS Queries again, to determine those records. Instead, when the 2nd email address is encountered, that belongs to hotmail.com, aspNetMX checks it's internal cache to see if the records are there, and then uses those records. By default the aspNetMX cache is set to time out every 15minutes, however, this time can be set by the programmer, to be minutes, hours, or even days.
Bad Email Address Internal List How many times have you seen the email address 'test@test.com' or 'a@a.com' or 'asdf@asdf.com' entered into your address list? While all of these addresses are technical valid, they are probably not too useful to you or your list. aspNetMX provides the capability to add these addresses to a 'Bad Address' list, and every time they are encountered, aspNetMX automatically fails them. Here are two easy code samples to achieve this functionality:
[C#]
MXValidate mx = new MXValidate(); //build the list of known bad email addresses, //separated by commas or semi-colons string BadEmails = "test@test.com;a@a.com;asdf@asdf.com"; //add them to the MXValidate session mx.AddBadEmails( BadEmails );
[Visual Basic]
Dim mx As New MXValidate() 'build the list of known bad email addresses, 'separated by commas or semi-colons Dim BadEmails As String = ""test@test.com; a@a.com;asdf@asdf.com" 'add them to the MXValidate session mx.AddBadEmails(BadEmails)
Known Domains There are a number of domains that are known to exist, and have a high frequency of being added to your email list. Some of these domains include "hotmail.com;aol.com;yahoo.com; usa.net;bigfoot.com;earthlink.net;mindspring.com; ibm.net;msn.com;compuserve.com; juno.com;geocities.com;excite.com; altavista.com;ibm.com;microsoft.com;netzero.net" *.
If you are validating to the MXValidateLevel.MXRecords, and the email address is found to be valid, AND found in one these domains, aspNetMX will return a successful validation. Again, adding these domains is as simple as adding the bad emails, seen above. Here are two easy code snippets to achieve this functionality.
MXValidate mx = new MXValidate(); //build the list of known domains, separated by //commas or semi-colons string KnownDomains = "hotmail.com; aol.com;yahoo.com; usa.net;bigfoot.com;earthlink.net"; //add them to the MXValidate session mx.AddKnownDomains( KnownDomains );
Dim mx As New MXValidate() 'build the list of known domains, separated by 'commas or semi-colons Dim KnownDomains As String = "hotmail.com;aol.com;yahoo.com; usa.net;bigfoot.com;earthlink.net" 'add them to the MXValidate session mx.AddKnownDomains(KnownDomains)
Mailbox Domains There are a number of domains that always return positive mailbox verification. Microsoft's Exchange server is known to do this. To prevent email address harvesting, some mail servers will always claim a mailbox for an email address exists, when in fact, none does. Some of these domains include "aol.com;yahoo.com;bigfoot.com;msn.com;compuserve.com; altavista.com;microsoft.com;netzero.net"*.
To prevent time-intensive network calls from happening on those domains, aspNetMX has the capability to add them and prevent these network calls from being made. Here are two easy code snippets to take advantage of these known mailbox domains.
MXValidate mx = new MXValidate(); //build the list of mailbox domains, serperated by //commas or semi-colons string MailboxDomains = "aol.com;yahoo.com;bigfoot.com; msn.com;compuserve.com; altavista.com;microsoft.com;netzero.net"; //add them to the MXValidate session mx.AddMailboxDomains( MailboxDomains );
Dim mx As New MXValidate() 'build the list of mailbox domains, serperated by 'commas or semi-colons Dim MailboxDomains As String = "aol.com;yahoo.com; bigfoot.com;msn.com; compuserve.com;altavista.com;microsoft.com;netzero.net" 'add them to the MXValidate session mx.AddMailboxDomains(MailboxDomains)
* Special thanks to James Shaw from www.CoverYourAsp.com for this list.
Copyright 2002 - Contact: Webmaster Last Updated: Thursday, May 08, 2008