On 8/2/06, Andrew Scott wrote:
> I am a little curious why you would suggest to not put it all into the To:
> field?

Well, the most basic argument against the practice is that antispam
systems see that and its a red flag.   I know I set my own mail
servers to limit recipients on a single email message and I'm sure I'm
not alone.  With that said, I have never personally used an antispam
system or gateway that scores this as a criteria.  If nobody else
knows of one perhaps its just a legend.

Nonetheless I don't think its a sound practice when there are far
better -- and I would argue correct -- tools available at your
disposal.  What are you going to do... find the max string length you
your server can handle in the To and then pull a query and stuff in as
many addresses as you can?  Then do it over again and again?  Thats a
lot of work to mail a simple list and the only benefit is you are
reducing the number of cfmail statements... a benefit that I don't see
the point of to be honest.  Especially when you could just use
CFMAIL's query attribute (although it doesn't allow you to do
individual try/catch).

I would argue that a best practice would be to loop over a query that
contains your email data.  Inside the loop is a try/catch block and
inside *that* is a cfmail statement.  If the try/catch fails (and
failure can come from more than just a bad address) then the catch
should report the error and the errored record ID for altternate or
future action, and move on to mailing the next record.

Once you get past that, the next thing I would argue -- and while I
don't think the above is really in question as the best way to go, I
can see some arguing against what I say next -- is that you need to
SLOW DOWN the mail delivery.  Regardless of the capacities of your
software and hardware, we live in a world where any more than a few
dozen emails shot out of a given server at a given moment arouses deep
suspicion on the part of destination mail servers, who will happily
throw a temporary block on your sending server for 20-60 minutes to
see if you come back.  Often the response is an RFC-noncompliant 'no
such user here' and I am not talking about greylisting, which would
present no problem to a respectable mail server.

Next would be the issue of load on the server.  ColdFusion arguably
has solved all of its mail capacity problems but I still keep hearing
about limitations on shared servers.  And in that environment lets say
you can get 200 addresses into a To field.  That may or may not be
slow enough for the shared mail server (big maybe) and from what I
have seen it is definitely too much for you to miss getting hit by a
frequency filter for very long.  Sooner or later you will -- out of
sheer chance -- send too many emails to one network and they will
block you.

So you have to slow down the loop.  i.e. throttle it.  You could use a
java-based sleep function, which uses less resources than a ghastly
timed cfloop, but it still eats a thread and that in and of itself can
be a problem.

I use the simple, low-tech HTML refresh method (which with a little
effort you can run as a scheduled process via the Windows scheduler).
My mailings on shared and dedicated servers alike have long been
invisible to frequency blocks or load issues on a shared server thanks
to trickling.  Its a set-it-up-and-forget-it solution.

I wrote a version with try-catch built in and posted it in the
tutorial area with a couple others  at that same site this afternoon.

-- 
[EMAIL PROTECTED]
Janitor, MSB Web Systems
mysecretbase.com

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:248694
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

Reply via email to