Daryl, this part of the conversation is academic at best. Amavisd
milter has been patched and is providing the proper received headers,
and network autodetection is still broken.
I was trying to build a test case for documenting the flaws, and
after reviewing the code realized that it would take less effort to
rewrite the entire autodetection bit than to explain to Matt Kettler
and others why they need to fix it. I'll submit back something that
works reasonably, and fails gracefully.
On Oct 17, 2006, at 7:05 PM, Daryl C. W. O'Shea wrote:
Mark wrote:
-----Original Message-----
From: Daryl C. W. O'Shea [mailto:[EMAIL PROTECTED] Sent:
dinsdag 17 oktober 2006 5:37
To: Matt Kettler
Cc: Jo Rhett; Magnus Holmgren; users@spamassassin.apache.org
Subject: Re: ALL_TRUSTED creating a problem
As discovered today, Jo's milter isn't adding the required
received header for his MX before passing the mail
to SA which is what is causing his problem.
Jo's milter ain't broken: incoming email is passed to a milter
prior to
sendmail adding its local Received: header. That's the way milters
work:
they are hooks into the SMTP dialogue. When that communication
ends, and
the milter has not deciced to reject or discard the message, only
then
will sendmail actually prepend it's own Received: header.
I'm fully aware of how the Sendmail milter interface works. A
milter that is not providing SpamAssassin with the required message
context "ain't not" broken. The primary purpose of the interface
between the milter (the actual milter, not the milter interface
between the milter and Sendmail) and SpamAssassin is to provide
SpamAssassin with the complete message and message context.
SA, which was initially designed as a mail filter to be called post
SMTP, expects to see the complete set of received headers. The
data contained in the final received header is vital to a large
number of the decisions SA makes.
Since SA is not itself a milter (if it were there would be no point
in yet another milter to access the SpamAssassin libraries) it has
no way to access the symvals that a milter would have access to.
Thus any milter that utilizes the SpamAssassin libraries must
provide SA with the info that it would normally see in a post SMTP
environment. Providing the SA factory with some context object
would do it, but would be dependent on the milter interface spec
that the milter itself is interfacing with. It's much more
simpler, and a heck of a lot more portable, to just have the milter
forge a received header (based on the context object it has access
to) for the sole purpose of providing SpamAssassin with the
required info.
Anyone who has considered SA's origin as a post SMTP filter, or
even paid attention to the debug output from either "spamassassin"
or "spamd" would immediately see why this is important and
necessary. For anyone who hasn't, there's always the MTA
Intergration Development note on the wiki: http://wiki.apache.org/
spamassassin/MtaIntegrationDevNotes
Daryl
--
Jo Rhett
Senior Network Engineer
Network Consonance