Why isn't Email Verifier catching this bad address?
False negative results in emailVerifier
The results of emailVerifier are not absolute. It's a toolset to improve validation that often needs to be combined with business rules.
It's difficult to explain all possible exceptions, but an address such as [email protected] is not valid, but may be deliverable since it's mx record is actually registered as [email protected]
So, it's best to use available methods of emailVerifier in context with your application. We added validation to http://www.cfdev.com/myAccount , for instance. It's helped dramatically to clean up stale addresses and make it possible to deliver important update information to customers. Customers are warned if an address is questionable, but are not forced to change it. This change has alerted many to addresses which are no longer used and mailboxes that aren't working. In another application, we flag questionable addresses in a database table and apply business rules over time to bounce data for the address before removing the questionable address. This allows us to keep addresses active that are only occasionally deliverable.
You'll need to explore the available methods for emailVerifier in the context for your application.
A few customers have had problems with mx lookups taking a long time to return. This is generally a sign of a problems with a primary DNS server, but can also occasionally happen with an address where the remote DNS server fails to respond.
Here's an additional example from the example form on our site that may be useful.
<form action="/support/kb/indexcfm/fuseaction/single/id/1063/example.html" method="post">
<input type="text" name="email" value="[email protected]" size="35">
<input type="submit" value="Validate Address">
</form>
<font size="-2">Note: not all email servers will reject bad email addresses</font><br>
<cfif IsDefined("form.email")>
<cfset ev = CreateObject("java", "com.cfdev.mail.verify.EmailVerifier")>
<b>Validation Test results:</b>
<pre>
Syntax Check - <cfif ev.validateEmailAddressSyntax(form.email)><font color="green">PASSED</font><cfelse><font color="red">FAILED</font></cfif>
DNS MX lookup Check - <cfif ev.validateMXRecord(form.email)><font color="green">PASSED</font><cfelse><font color="red">FAILED</font></cfif>
Top Level Domain Check - <cfif ev.validateTopLevelDomain(form.email)><font color="green">PASSED</font><cfelse><font color="red">FAILED</font></cfif>
Mail Server Check - <cfif ev.validateMailServer(form.email)><font color="green">PASSED</font><cfelse><font color="red">FAILED</font></cfif>
</pre>
<cfelse>
<br><br>
</cfif>
<a href="/support/kb/indexcfm/fuseaction/single/id/1063/index.html"><strong>Back to Email Verifier</strong></a>
<br><br><br>