Thank you for your reply, Peter!

Peter J. Holzer wrote:
Hmm. If you are running a domain with catch-all, worrying about the
efficiency of reading/writing a single record in a dbm file seems like
putting the cart before the horse to me.

Ok, got that. Will greylisting ever purge records, or does the dbm file grow indefinitely?

I'd try to modify check_verybadrcptto to simply return DENY_DISCONNECT
in the recpipient handler and remove hook_data. That's against the idea
of check_verybadrcptto, but it's probably closer to what you want.

No, I don't want to make it that easy for the spammers to clean their list. If I disconnect on RCPT and their software has only a little smarts, it will reconnect and try the next address. That way I'd lose the protection that check_verybadrcptto gives to the good addresses.

check_verybadrcptto works so well that I'm thinking about adding invisible "guard" addresses on web pages where I've published real addresses. (I've obfuscated them of course, but over time they still leak out.)

It would be nice if the greylisting database work could also be postponed until hook_data, when it's actually needed ("lazy evaluation"), so that it can be skipped, if some earlier plugin returns a DENY.

I think using deny_late is usually a mistake. I can't think of a
scenario where it's actually useful.

My thinking was along these lines: if I can end a transaction with DENY rather than DENYSOFT, then it's worth the extra effort, because the spammer is less likely to come back as quickly. So, to give check_verybadrcptto precedence over greylisting, I have to run greylisting with deny_late, or am I missing something?

BTW, I had a bogus bouncer retry every 3 seconds (without ever disconnecting!) until the black period turned grey. Seems like there should be a counter in greylisting...

It would also be nice, if a plugin like check_verybadrcptto could somehow signal that the transaction is doomed, so that other, more expensive plugins could tell that they don't need to run anymore.

I think that in that case the plugin should return DENY_DISCONNECT or
DENYSOFT_DISCONNECT. There's little point in keeping the connection open
if it is doomed (unless you're running a spamtrap, but then you probably
don't worry about expensive plugins).

Well, I guess you could call my way of running check_verybadrcptto a mini-spamtrap (see above).

Not that I go out and actively attract spam, but I've fed some 40,000 pieces of spam into SpamCop. Now I've turned to qpsmtpd because I'm getting a bit tired of this game, but if I could easily forward the verybadrcptto's, I'd do it right away!

This would mean to hang on to doomed transactions all the way to the end and to redirect rather than reject the spam that was identified positively...

Hans

Reply via email to