I'm looking for a bulk email validation tool to parse a list of 60K email addresses. Our company sends out 8 Million email newsletters a month via our mailing list software - MDAEMON. MDAEMON ships with a bad email address validator but I'm not quite comfortable with its results as it captures returned email addresses with SMTP errors of 500 and above. (We want to keep emails that return a Full Mailbox error or bounce backs that see us as SPAM)

To further prune the list, we use Advanced Email Verifier. But I tested a random sample of this list and found a couple emails to be valid.

Since our company relies heavily on traffic from our newsletters, I am wondering what other Windows-based bulk email verifier tools are out there?

Sure. Let me clarify as I may not have been clear. We SEND about 8 Million emails a month, we do not have 8 million addresses. (More in the 500K range)
–
JoefrshnJoecleanMay 11 '10 at 23:07

Uh -- Your mention of spam and full inbox messages and AEV makes me think you mean you want to verify that an email address is valid, as in deliverable, not as in "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$", right? Ie you want to throw out addresses which are non-deliverable.
–
David MackintoshMay 12 '10 at 1:42

Thanks for rephrasing my question David. Correct. I want to throw out only the non-deliverable email addresses. They are all syntactically correct but are invalid. For example, thisisfake@fakedomain.com is correct in terms of format but is a nonexistant email. Im looking for a better way to 'verify' my email list.
–
JoefrshnJoecleanMay 12 '10 at 6:27

Parsing 60k email addresses is done by dealing with them one at a time. Assuming you have those addresses in some form of list (how else could they be used?) create a script to read through that list and check each one, logging any that fail. It shouldn't take more than a few seconds to run.

There are a couple of Perl libraries which will call out the mail server and verify that the address will be accepted. This will allow you to prune any addresses which will fail during sending. Not all domains will fail invalid localparts (users) when you send out mail. Use a valid sender address to which they can deliver the bounce message.

Also note that some domains will give you a temporary failure for non-existant users. Use a proper mailer on your end, and let it bounce the messages after delivery times out.

You will need to parse your bounce messages to determine why the message bounce. A properly configured server sending properly formatted emails should not bounce. Follow the RFCS and make sure you stay off the blacklists.