Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

My server is windows server 2003. I got a huge list of subscribers. Lots of them have invalid email like,,,

I want to send a email to all my users, but it will send to those invalid email as well. And thus, it will create bounce email. How to handle those bounce email? Any good tutorial I can follow?

share|improve this question
If you were doing Closed Loop Confirmed Opt In, you wouldn't have any subscribers with invalid email addresses. – Mark Johnson Sep 3 '09 at 17:13

In my company we have a little tool written in .NET using a 3rd party component called ListNanny. It is used categorize and parse bounce back emails in the SMTPs Badmail folder, or NDRs (Non-Deliverable Reports or Non-Deliverable Receipts).

You have to pay attention that there a serveral types of NDRs and that you have to decide in each case what to do for the particular address in your mailing list. The major distinction is "hard bounce" vs. "soft bounce". Hard bounces are permanent errors, like "Unknown user" - soft bounces occur temporarily, like "mailbox full" etc.

Here are examples of what can be parsed:

  • HardBounce: The server was unable to deliver your message (ex: unknown user, mailbox not found)
  • Transient: The server couldn't temporarily deliver your message
  • Unsubscribe: Unsubscribe or Remove request
  • Subscribe: Subscribe request from someone wanting to get added to the mailing list.
  • AutoResponder: Automatic email responder ( ex: 'Out of Office' or 'On Vacation')
  • AddressChange: The recipient has requested an address change.
  • DnsError: A temporary DNS error.
  • ChallengeVerification: The bounce is a challange asking for verification you actually sent the email. Typical challenges are made by Spam Arrest, or MailFrontier Matador
  • SpamNotification: The message was delivered, but was either blocked by the user, or classified as spam, bulk mail, or had rejected content.
  • OpenRelayTest: The NDR is actually a test email message to see if the mail server is an open relay.
  • Unknown: Unable to classify the NDR
  • SoftBounce: Unable to temporarily deliver message (i.e. mailbox full, account disabled, exceeds quota, out of disk space)
  • VirusNotification: The bounce is actually a virus notification warning about a virus/code infected message.
share|improve this answer
We did the same thing. Once we see an NDR we stop trying to send to that email address, since further attempts make you look like a blind spammer. ListNanny is a good component. – Eric Z Beard Jun 19 '09 at 17:46

Although it is possible to have your NDR's delivered to a mailbox and weed things out from there in my company we use a third party tool to check the validity of our mailing lists before we send out to them. It helps cut down on the number of NDR's we produce (It's not perfect obviously - nothing is) but it does help a lot.

The program is GLock Softwares Advanced E-Mail Verifier Pro, it costs $99 which is cheap for the job it does.

IMHO it is better not generate the NDR's in the first place than have to deal with them.

share|improve this answer
Be careful with this type of thing - some of those tools make an active connection to target email servers to check if the mailbox exists, and that can get you tagged as a spammer. If it's just checking for valid domains it should be Ok. – Eric Z Beard Jun 19 '09 at 17:44
Sender Callouts will make you very unpopular. – Mark Johnson Sep 3 '09 at 18:13
Thanks for the comments - I freely admit I had the wrong view. Using what you've said has allowed me to get the software stamped out in the office. No more pre-checking, instead we're building an automated bounce handler in to our mail system. – Please Delete Me Oct 12 '09 at 13:13

It depends a lot on what you're using for a mailer. From your other question I'm thinking you don't know what that is exactly. If you know you'll be dealing with a lot of non-delivery-reports (NDRs in email lingo) then set your From: address to be a mailbox that can grow to very large sizes. Then you can presumably go through that and weed out the bad addresses from your list. Depending on what your mailer is, you may have more options then that, though.

share|improve this answer

There is Javascript ASP source at CoverYourASP with a link to a descriptive article.

This Hacked article may also be good reading.

share|improve this answer

nice easy perl module to cover that: Email::Valid "This module determines whether an email address is well-formed, and optionally, whether a mail host exists for the domain."

It does not however test that its deliverable by any means.

share|improve this answer

You should consider processing the bounced emails and use the results of the processing to update your email addresses accordingly. This will mean that you don't send to a bad email address more than once and you should also be able to manage common situations like bounced messages because a recipients' mailbox is full. A simple solution which is free and uses php is:

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.