[Mailman-Users] Posting-Filter is broken in 1.1 !?
Ted Cabeen
secabeen at pobox.com
Thu Jan 6 17:55:53 CET 2000
In message <200001061532.PAA02605 at wivenhoe.demon.co.uk>, Chris Fox writes:
>On Mon, 03 Jan 2000 09:08:17 PST, J C Lawrence wrote:
>>On Mon, 3 Jan 2000 10:30:03 +0100
>>Aaron Optimizer Digulla <digulla at hepe.com> wrote:
>>> 2. Some posts are held because Mailman uses the "Sender:" header
>>> item added by Netscape (Mailman should ignore it).
>>
>>MailMan pays no attention to the Sender: header. It does by default
>>read the message envelope and does ignore the From: header however,
>
>I also experience the reported problem, and requested help on this
>list--subject: How to make Mailman more trusting of subscriber
>supplied addresses--with no response (at least, none that reached
>me). This is with USE_ENVELOPE_SENDER = 0, and it even when faking
>the envelope from by piping through formail. At times, Mailman seems
>to behave as if it uses the return-path: header.
Since Barry doesn't seem to be around to respond to this, I'm going to
attempt an answer. The relevant code that you're looking for is in
Message.py at line 110 where Mailman checks the sender then the from:
def GetSender(self):
# Look for a Sender field.
sender = self.getheader('sender')
if sender:
realname, mail_address = self.getaddr('sender')
else:
try:
realname, mail_address = self.getaddr('from')
except:
real_name = mail_address = None
Switching the sender and the from will check the From address first, then the
sender. Here's a patch to do so. To use it, patch the two files and set
USE_FROM_FIRST to 1 in your mm_cfg.py
*** Message.py Sun Nov 7 10:48:54 1999
--- Message.py.new Thu Jan 6 10:42:50 2000
***************
*** 104,118 ****
return self.file_data[self.file_count-1] + '\n'
def GetSender(self):
! # Look for a Sender field.
! sender = self.getheader('sender')
! if sender:
! realname, mail_address = self.getaddr('sender')
! else:
try:
! realname, mail_address = self.getaddr('from')
! except:
real_name = mail_address = None
# We can't trust that any of the headers really contained an address
if mail_address and type(mail_address) == type(""):
--- 104,127 ----
return self.file_data[self.file_count-1] + '\n'
def GetSender(self):
! if mm_cfg.USE_FROM_FIRST:
try:
! realname, mail_address = self.getaddr('from')
! except:
real_name = mail_address = None
+ sender = self.getheader('sender')
+ if sender:
+ realname, mail_address = self.getaddr('sender')
+ else:
+ # Look for a Sender field.
+ sender = self.getheader('sender')
+ if sender:
+ realname, mail_address = self.getaddr('sender')
+ else:
+ try:
+ realname, mail_address = self.getaddr('from')
+ except:
+ real_name = mail_address = None
# We can't trust that any of the headers really contained an address
if mail_address and type(mail_address) == type(""):
*** Defaults.py Sun Nov 7 10:48:51 1999
--- Defaults.py.new Thu Jan 6 10:45:11 2000
***************
*** 120,125 ****
--- 120,128 ----
# spoofed messages may get through.
USE_ENVELOPE_SENDER = 0
+ # When true, mailman will check the from field before it checks the sender
+ # field, as sender is not set correctly by a number of MUAs
+ USE_FROM_FIRST = 0
# When true, mailman will consider user at host.domain to be the same address
# as user at domain. If set to 0, mailman will consider user at host.domain to
# be the same address as user at Host.DoMain, but different than user at domain.
--
Ted Cabeen http://www.pobox.com/~secabeen secabeen at pobox.com
Check Website or finger for PGP Public Key secabeen at midway.uchicago.edu
"I have taken all knowledge to be my province." -F. Bacon cococabeen at aol.com
"Human kind cannot bear very much reality."-T.S.Eliot 73126.626 at compuserve.com
More information about the Mailman-Users
mailing list