[Exim] Failing behviour based on SMTP codes.

Top Page
Delete this message
Reply to this message
Author: Theo E. Schlossnagle
Date:  
To: exim-users
Subject: [Exim] Failing behviour based on SMTP codes.
I have looked through the specification several times and read the FAQ, but I
can't seem to figure this one out.

I send out a lot of mail per day (~14 million unique messages.) Every once in
a while, someone big like aol.com or mail.yahoo.com will mark us as SPAM
(which we aren't). Some people associate lots of mail with SPAM without ever
looking at its content -- sad.

So, my point. The information we send in the email can be found online (WWW)
and is only pertinent for 24 hours (consider it *like* a game piece). When
someone like Yahoo blocks us, we can easily say: "We just aren't going to get
email to yahoo users today."

Exim will freeze the messages in the queue. This takes an enormous amount of
disk space and I would like the messages to immediately fail.

I have my retry rules completely finish at 18 hours (instead of the standard 5
days,) but it doesn't help enough.

Is there a way to have exim immediately fail and produce an error (bounce)
upon receiving a 550 response with a certain matched string from the other
end? Having frozen messages moved to another queue is not what I am looking
for as some of the failures are not *so* permanent.

Currently I have a perl process that tails the mainlog and pattern matches
certain failure conditions like /spam/i and /relay.*(not allowed|denied)/i.
If they match, the process forks a exim -Mrm messageID. This is, to say the
least, not elegant.

Any ideas?

--
Theo Schlossnagle
1024D/A8EBCF8F/13BD 8C08 6BE2 629A 527E 2DC2 72C2 AD05 A8EB CF8F
2047R/33131B65/71 F7 95 64 49 76 5D BA 3D 90 B9 9F BE 27 24 E7