[Mimedefang] Re: Spam Assassin
David F. Skoll
dfs at roaringpenguin.com
Wed Jan 9 10:28:45 EST 2002
On Tue, 8 Jan 2002, Jeff Heinen wrote:
> > I haven't had problems either, but I added the call in is_spam and check.
> > MIMEDefang kills the Perl process after it has processed (by default) 100
> > messages, so this limits the propagation of memory leaks.
> Limits, but if all 100 messages were large enough, it might be something.
Why, is the amount of state stored by SpamAssassin proportional to message
size? I would not have thought so.
> You are right, I wasn't clearing our $is_spam or $report, yet oddly I wasn't
> having any problems of bleed, or mismatched reports. All it was doing was
> messing up the formatting of the message in Exchange. (Not like that is
> difficult however).
Weird. I have never seen that.
> That's what I'm looking at now. Anyone well versed in MIME to venture what
> I'd need? Just content type, name, and data, right?
> This is a sticky part here. We did have this discussion, and the only
> exception we had, really, was our pagers, which are bounced out to their
> email address at the pager company.
How do you do the bouncing? With a .forward file, or in aliases?
If it's in .forward, you can write a little bounce script which won't bounce
things marked as spam.
> > See stream_by_domain in mimedefang-filter(5). You _can_ use MIMEDefang
> > fairly efficiently to make per-domain decisions.
> I did see this, but how is this written? If someone drops a 100 recipient
> Spam on me, will I end out resending this to everyone?
The message is repeated once for each unique domain name. Example: If the
message goes to a at a.net, b at a.net, a at b.net and b at b.net, then two copies
are sent: The first copy goes to a at a.net and b at a.net, and the second copy
goes to a at b.net and b at b.net
> All I need is to create a data structure with the extra
> per-domain configuration information I need, and as mimedefang is persistent
> for 100 connections, the overhead to load it would not be that noticeable.
You cannot rely on persistence between messages! Although MIMEDefang is
persistent for 100 messages, you have no way of knowing when the boundary
hits. If you use stream_by_domain, MIMEDefang will be re-invoked for
each domain, and you can base your tests on the $Domain variable. The proper
way to use this is shown in the mimedefang-filter man page.
More information about the MIMEDefang