ColdFusion Email Validation, IsValid(), And CFMail Errors

<!--- Set up emails to test format. --->
<cfset arrEmails = ArrayNew( 1 ) />
 
<!--- Add emails that we know are totally bunk. --->
<cfset ArrayAppend( arrEmails, "" ) />
<cfset ArrayAppend( arrEmails, "1" ) />
<cfset ArrayAppend( arrEmails, "@" ) />
<cfset ArrayAppend( arrEmails, ".ben" ) />
<cfset ArrayAppend( arrEmails, "." ) />
<cfset ArrayAppend( arrEmails, "..." ) />
<cfset ArrayAppend( arrEmails, "-.-.ben" ) />
 
<!--- Add emails that test the NAME part. --->
<cfset ArrayAppend( arrEmails, "sarah@hotties.ben" ) />
<cfset ArrayAppend( arrEmails, "mary-kate@equinox.ben" ) />
<cfset ArrayAppend( arrEmails, "mrs.molly@teacup.ben" ) />
<cfset ArrayAppend( arrEmails, "libby_star@blondes.ben" ) />
<cfset ArrayAppend( arrEmails, "d.d.busty@domain.ben" ) />
<cfset ArrayAppend( arrEmails, "heather..rose@gotglue.ben" ) />
<cfset ArrayAppend( arrEmails, "anne--fesekis@hackley.ben" ) />
<cfset ArrayAppend( arrEmails, ".anna.cooper.@hockeychicks.ben" ) />
<cfset ArrayAppend( arrEmails, "-christina.cox-@hollywoodhotties.ben" ) />
<cfset ArrayAppend( arrEmails, "@campuscuties.ben" ) />
<cfset ArrayAppend( arrEmails, "-@justlegal.ben" ) />
<cfset ArrayAppend( arrEmails, ".@swank.ben" ) />
<cfset ArrayAppend( arrEmails, "3@atatime.ben" ) />
<cfset ArrayAppend( arrEmails, "/@punctuation.ben" ) />
<cfset ArrayAppend( arrEmails, "*@punctuation.ben" ) />
<cfset ArrayAppend( arrEmails, "ben&molly@kittens.ben" ) />
 
<!--- Add emails that test the DOMAIN part. --->
<cfset ArrayAppend( arrEmails, "sarah@hot-girls.ben" ) />
<cfset ArrayAppend( arrEmails, "anne@got----blondes.ben" ) />
<cfset ArrayAppend( arrEmails, "jessica@-cool-girl-.ben" ) />
<cfset ArrayAppend( arrEmails, "julie@cool.beans.ben" ) />
<cfset ArrayAppend( arrEmails, "julia@brazil..buddies.ben" ) />
<cfset ArrayAppend( arrEmails, "kate@dorm.-.girls.ben" ) />
<cfset ArrayAppend( arrEmails, "lara@-.ben" ) />
<cfset ArrayAppend( arrEmails, "michelle@36-24-36.ben" ) />
<cfset ArrayAppend( arrEmails, "kimmie@ladies.who.smile.ben" ) />
 
<!--- Add emails that test the EXTENSION part. --->
<cfset ArrayAppend( arrEmails, "ye@whatwhat" ) />
<cfset ArrayAppend( arrEmails, "stacy@largeladies.4" ) />
<cfset ArrayAppend( arrEmails, "marci@totality.123" ) />
<cfset ArrayAppend( arrEmails, "jen@toocute.z" ) />
<cfset ArrayAppend( arrEmails, "jo@cutencurley.xy" ) />
<cfset ArrayAppend( arrEmails, "pam@waycute.xyz" ) />
<cfset ArrayAppend( arrEmails, "gina@cowgirls.a4b" ) />
<cfset ArrayAppend( arrEmails, "linda@lumpyladies.abcdef" ) />
<cfset ArrayAppend( arrEmails, "jane@ilikeemlarge.abcdefghij" ) />
 
 
<!--- Create a table to output the results. --->
<table border="0" cellspacing="0" cellpadding="0">
<tr>
	<td>
		Email
	</td>
	<td>
		IsValid()
	</td>
	<td>
		Email Success
	</td>
</tr>
 
<!--- Loop over the emails and validate them. --->
<cfloop index="intI" from="1" to="#ArrayLen( arrEmails )#" step="1">
	 
	<!--- Try sending out email. --->
	<cftry>
		 
		<!--- Send mail. --->
		<cfmail 
			to="#arrEmails[ intI ]#"
			from="xxx@yyy.zzz"
			subject="This is a test email">
			 
			This is a test email.
		</cfmail>
		 
		<!--- Set success flag. --->
		<cfset blnEmailSuccess = true />
		 
		<!--- Catch email errors. --->
		<cfcatch>
			 
			<!--- Email failed. Set success flag. --->
			<cfset blnEmailSuccess = false />
		 
		</cfcatch>
	 
	</cftry>
	 
	 
	<!--- Check for validity. --->
	<cfset blnValid = IsValid( "email", arrEmails[ intI ] ) />
	 
	<tr>
		<td>
			#arrEmails[ intI ]#
		</td>
		<td>
			#YesNoFormat( blnValid )#
		</td>
		<td>
			#YesNoFormat( blnEmailSuccess )#
		</td>
	</tr>
 
</cfloop>
</table>

For Cut-and-Paste