 Cleaning Your Address List
An easy and accurate way to use bounced messages
to clean your address list...
Welcome to the first edition of E-mail Secrets. Lately at Quiksoft, we have been talking
a lot about cleaning up our e-mail address list. Many of our
customers have been asking how to reliably track the status of
outbound e-mail messages, and how to update their address database
when a message is returned undeliverable, otherwise known as a
bounce.
In this edition you will learn:
- Three very important reasons why your must clean your e-mail
address list now
- What you need to know about how SMTP servers route
bounced
messages
- The secret to
automatically matching bounced messages to addresses in
your database
- The difference between hard and soft bounces and why you
should track both
- Bonus secret to tracking failures on a mailing by mailing
basis
This edition also contains downloadable sample code that
will:
-
Encode your outbound messages with the proper information so
that they can be matched to your address database if they are
returned undeliverable
-
Scan your bounced messages and flag the addresses in your
database
-
Provide you with tons of phrases found in typical bounced
messages, which can be used to programmatically discover their
meaning
Three reasons why you must clean your list now...
I used to think that the quality of my list didn't matter. I thought It would be better to send to the entire list and let failures
take care of themselves. But that was then, and this is now,
and over the years experience has taught me three important reasons
why it is important to keep a clean list:
- Some popular
mail servers may block all mail from you if you repeatedly send mail
to a bad address on their domain.
-
Repeatedly sending e-mail to bad addresses wastes bandwidth.
Even if bandwidth is not an issue now, this problem will grow in
scale with time.
- If you are going to do any type of response tracking, you
must subtract out the failures for an accurate report.
So with these reasons in mind, I set out to clean our address
list. But how to do it reliably was the question...
A simple answer to a complex problem...
To clean our address list I would have to identify bad
addresses and flag them in our address database so that I did not
send e-mail to them anymore. I decided that I did not want
to delete the bad addresses, I just wanted to flag them as being
bad. But how do you determine that an address is bad?
Most SMTP servers will accept mail addressed to just about
anyone in their domain, and only later figure out that the user
does not exist. That means that whatever app you use to send mail
will almost never know that there is a problem. As far as
your app is concerned, the SMTP server accepted the message --
period.
I tried looking at so called "address verifier" components.
These components check the email address for syntactical errors
and for non-existent domains, but they can not actually tell if
the user part of the address is valid. I used several of
these to validate buggs.bunny@microsoft.com and was excited to
find that Buggs does work at Microsoft these days, but when
I sent him an e-mail, it bounced back with the following message:
"Delivery to the following recipients failed: buggs.bunny@microsoft.com".
The truth is that these "address verifier" components were no better
at verifying addresses than my app was, so they were of no use to
me.
So how do you reliably determine if an address is good?
The answer is -- you can't. But you can determine if an
address is bad when a
message sent to it is returned undeliverable (bounced), and that is the key to solving
this problem.
The best part of this solution is that it is not dependant on
extended SMTP features. It will work all the time provided
that the recipient's mail server correctly adheres to RFC-821, the minimum
requirements for any SMTP server. The SMTP protocol as outlined in RFC-821 provides for a
notification mechanism when a message can not be delivered.
This notification mechanism works by creating a new e-mail message
which is sent to the original sender to inform them that their
message was not delivered. This e-mail message is commonly
referred to as a bounce. The first step to cleaning our
address list is to funnel the bounced messages into a
central location where they can be programmatically analyzed.
The following 3 step process, will enable you to capture
bounced messages, figure out which address in your database they
belong to, and flag the record.
Page Navigator:
1,
2,
3,
4,
5,
Next >>
|