LSTSRV-L Archives

LISTSERV Site Administrators' Forum

LSTSRV-L

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Valdis Kletnieks <[log in to unmask]>
Mon, 20 Mar 2006 11:54:29 -0500
text/plain (55 lines)
On Mon, 20 Mar 2006 10:30:35 -0400, Bruno Robichaud said:
> Thx for the tips, About the Mail transport agent right now we using the IIS
> SMTP, which other SMTP would be more efficient than this one.

I'm not aware of anybody who is doing a million e-mails per day using the
IIS SMTP.  On the other hand, doing a million e-mails per day using Sendmail
on a Unix/Linux box is no trouble at all once you spend some time tuning it,
an a million per hour is achievable with some work.  10M per hour will involve
some investment in serious hardware resources, however... ;)

General hints that will apply no matter *what* MTA you use:

1) Get a good handle on what SLA you're expected to meet, and make sure it's
physically possible.  Delivering 95% of a million e-mails in the first 6 hours
is no trouble at all.  Delivering 95% inside 15 minutes is a challenge.  And
if they want 100% delivery in *any* timeframe, point out that there is no way
you'll get a million addresses that exist and are reachable - servers at the
other end will be down, backhoes will pop underground fiber bundles while doing
their mating dance and demonstrating their digging prowess (Spring *is* the
traditional backhoe mating season, you know).

2) Although the RFCs frown on it, you're best off making *one* attempt to
deliver the mail with drastically shortened timeouts. One particularly big win
is to timeout the *initial* connection attempt after only 5 seconds or so
("O Timeout.iconnect=5s" for Sendmail's .cf file) - if they can't get a TCP
3-packet handshake done in 5 seconds, they're probably down.  After the first
attempt, *get them out of the way* and re-try them with more traditional
timeouts later.

3) If most of the mailings are going to the same people as the last time,
I *highly* recommend a local caching-only DNS server - if you have enough
memory, running it on the same machine as the MTA is ideal.  The round-trip
time to look up MX and A records can be a *major* throughput killer (eliminating
*one* particularly badly timed MX lookup in Sendmail resulted in a 6X speedup
on my Listserv box. 'FEATURE(nocanonify)' in the sendmail.mc file is the
magic incantation).

4) Make sure all the 'User Unknown' bounces get fed back for removal from
the database.

5) Be prepared to have somebody watching the queues in case some site you send
a lot of mail to goes belly up.  If 1% of your subscribers have yahoo.com
addresses, you will almost certainly end up with lots of mail queued for
the yahoo.com mailservers (1% of a million means 10K recipients headed there,
which will irritate their mailservers and generate lots of '421' errors).

6) If you don't have a clue what an SMTP 421 error is, find somebody who
does.  If you're sending a million pieces of mail a day, you *will* need
somebody who's technically skilled to deal with sites that think you're
spamming them, or sites that block you because they don't like technical
incompetence.

7) Have working *and responsive* abuse@ and postmaster@ aliases.  Failure to do
is one of the quickest ways into many places' blacklists.  See (6) above....

ATOM RSS1 RSS2