Update 10/30/2008 (2:57 pm): Updated program to handle open/close of sockets differently. Added checking for '.' at end of address.
Update 10/27/2008 (2:57 pm): Updated program to handle root level MX records (like Microsoft live reroute).
Update 10/27/2008 (1:43 pm): Program's SMTP connection enhanced to handle multiple retries on the same server. Extended connection try from 3 second max, to 30 second max (some servers were taking 4.9 seconds in testing).
Update 10/27/2008: Program released.
The lccEmailVerification program was created to verify e-mail addreses. The following tests are ran against each mail address, in order. If any test fails, the program will mark the address as 'failed' and move on to the next one.
+ no spaces + at least one '@' (at) character, and only one + at least one '.' (period) character after the '@' character + at least something before the '@' character + at least something after the '@' character + the DNS Name portion (what is after the '@' character) exists on the internet + at least one of the IPs returned by DNS Name is valid IP + at least one of the DNS Server provided by the user is reachable + at least one valid MX (mail server) records exists for the address DNS Name + at least one of the servers referred to in the MX records is reachable + at least one of the mail servers respond to a SMTP connection + at least one of the mail servers respond to a HELO command + at least one of the mail servers respond to a MAIL FROM command + at least one of the mail servers allow a new message to be sent to the mail address note: a message is not actually sent, just an attempt at sending one
If all of the tests passed, the mailbox is labled as 'Verified'.
If any of the tests fail, the mailbox is labled as 'Failed'.