
We have been running Mailman on Windows for about two weeks now and most things seem to work very well. To make it run I had to make some changes - all of them minor - and most of them related to opening files ('b'). Mailmanwin (as I have named it) is probably not useful for anyone but me (and my company) right now; some things do not work at all (web interface, e-mail archive, usenet gateway, all the bin scripts) and some things are changed to make them better fit my needs.
I have made an "install" script doing all the work and describing all the changes, so it's fairly easy getting started. I hope to get a webpage up with these things soon.
I don't expect the mailman developers to take account of any of these changes. I fully understand and respect that this is a Linux project and would hate if cross platform issues in any way affected the future direction of Mailman. Having said that, it would be nice if no module names conflicted with modules in the standard Python distribution (mailbox) ;)
On to the questions.
- Delivering messages to scripts/post I could not find any MTA for Windows (I didn't look much, though) that was able to get the toaddr and deliver the message to scripts/post. Instead we are using L-soft LSMTP (we used L-soft LISTSERV before changing to Mailman). LSMTP is told to save all messages (complete with all envelope header information) and I have made a Python script that parses each message and calls Enqueu with the correct parameters.
This works well, except that we have had a couple of mail loops because of auto-responders replying directly to the list. So my question is, what information does a MTA look for before passing the message to post? I found out that filtering out all messages with daemon and/or postmaster in the fromaddr is a good idea. Are there any other "keywords" that i should know of?
Empty envelope fromaddr In some messages the envelope fromaddr is empty. Is it safe to never deliver a message with an empty envelope fromaddr to a list?
Using the envelope fromaddr or the message fromaddr I can see that this is a Mailman setting. What are the consequences of using only the envelope fromaddr?
Just for the record. L-soft LISTSERV is a great product - the most solid/stable I have ever used. We chaned to Mailman because we needed some things LISTSERV didn't have.
All the best, Jesper.

"JJ" == Jesper Jensen <jj-list@mail.dk> writes:
JJ> We have been running Mailman on Windows for about two weeks
JJ> now and most things seem to work very well.
Very cool!
JJ> To make it run I had to make some changes - all of them minor
JJ> - and most of them related to opening files ('b').
Ah yes. That and pre-unlinking (i.e. unlinking a file you have open because you know it will go away when the file is closed) are two Unixisms that often bite me when porting Python code to Windows. I try to be good, but old habits die hard. ;)
JJ> Mailmanwin (as I have named it) is probably not useful for
JJ> anyone but me (and my company) right now; some things do not
JJ> work at all (web interface, e-mail archive, usenet gateway,
JJ> all the bin scripts) and some things are changed to make them
JJ> better fit my needs.
What version of Mailman are you running? I'd be interested in looking at any patches that help port Mailman to Windows (or any other platform for that matter). I develop on Linux these days, and before leaving CNRI, primarily Solaris. I'm fairly confident Mailman runs on any (sane :) Unix-like OS, and I have nothing philosophical against porting Mailman to any platform that Python runs on -- and that's a lot of platforms. But I don't have much time to do that work myself, so such porting necessarily relies on contributions from others.
JJ> I have made an "install" script doing all the work and
JJ> describing all the changes, so it's fairly easy getting
JJ> started. I hope to get a webpage up with these things soon.
When you're ready to submit patches, please upload them to SourceForge. I've created a new patch category called "cross platform".
JJ> I don't expect the mailman developers to take account of any
JJ> of these changes. I fully understand and respect that this is
JJ> a Linux project and would hate if cross platform issues in any
JJ> way affected the future direction of Mailman. Having said
JJ> that, it would be nice if no module names conflicted with
JJ> modules in the standard Python distribution (mailbox) ;)
This should actually be better for Python 2.1 since the case-sensitivity on imports for case-preserving case-insensitive file systems (e.g. Windows) has been greatly improved (I've been told). I thought about renaming Mailbox.py, but that's a PITA because I don't want to lose the CVS history and renaming-retaining-history can't be done without access to the CVS repository. I'll probably just require MacOSX and Cygwin (and Windows :) users to use to Python 2.1. Everyone else should be fine with Python 2.0 or 2.1.
JJ> 1. Delivering messages to scripts/post I could not find any
JJ> MTA for Windows (I didn't look much, though) that was able to
JJ> get the toaddr and deliver the message to scripts/post.
JJ> Instead we are using L-soft LSMTP (we used L-soft LISTSERV
JJ> before changing to Mailman). LSMTP is told to save all
JJ> messages (complete with all envelope header information) and I
JJ> have made a Python script that parses each message and calls
JJ> Enqueu with the correct parameters.
JJ> This works well, except that we have had a couple of mail
JJ> loops because of auto-responders replying directly to the
JJ> list. So my question is, what information does a MTA look for
JJ> before passing the message to post?
In the usual Unix MTA world, nothing, it's a dumb pipe. Mailman itself looks at the incoming message for X-BeenThere headers and raises a LoopError if it finds one that matches the list address. There's no guarantee that'll be preserved during the loop though, and in that case there isn't much that can be done.
JJ> I found out that filtering out all messages with daemon and/or
JJ> postmaster in the fromaddr is a good idea. Are there any
JJ> other "keywords" that i should know of?
You might look at LIKELY_BOUNCE_SENDERS in Defaults.py, which includes mailer-daemon, orphanage, and postoffice though I can't personally remember ever seeing bounce message originate from the latter two.
JJ> 2. Empty envelope fromaddr In some messages the envelope
JJ> fromaddr is empty. Is it safe to never deliver a message with
JJ> an empty envelope fromaddr to a list?
I've no idea, since I don't know why for you the From_ header is missing sometimes.
JJ> 3. Using the envelope fromaddr or the message fromaddr I can
JJ> see that this is a Mailman setting. What are the consequences
JJ> of using only the envelope fromaddr?
In practice, you'll get a lot more holds if you limit postings to members only. While the From: header is easily spoofable, it turns out to be a much greater PITA to use the From_ header (which itself isn't that hard to spoof).
JJ> Just for the record. L-soft LISTSERV is a great product - the
JJ> most solid/stable I have ever used. We chaned to Mailman
JJ> because we needed some things LISTSERV didn't have.
Cool! If you have the time, perhaps you can post a list of things you like about LISTSERV that Mailman doesn't have, and vice versa.
-Barry

Barry A. Warsaw wrote:
Mailman 2.0.3, but it will work with 2.0.4 if only changes to qrunner was made there. I am completely new to the world of sourceforge and cvs and patches and other joys it may bring. Right now my only weapon is a python script that modies Mailman to run on Windows.
But using the cvs patch system is probably a good idea and I will try to go that way instead.
Barry A. Warsaw wrote:
That sounds great, time for another upgrade then ;)
Barry A. Warsaw wrote:
I know LISTSERV would refuse two messages with similar text sent to the same list. Or that is, the first message is sent to the list and all following messages with similar text are rejected. I don't know if this was a word by word comparison or a message size comparison.
Has something similar been discussed for Mailman? Or maybe I am making a bigger issue out of this than it is. I am just terrified, that one morning I will find out, that one of the lists has been talking with some auto-reply system all night long.
Jesper.

"JJ" == Jesper Jensen <jj-list@mail.dk> writes:
JJ> We have been running Mailman on Windows for about two weeks
JJ> now and most things seem to work very well.
Very cool!
JJ> To make it run I had to make some changes - all of them minor
JJ> - and most of them related to opening files ('b').
Ah yes. That and pre-unlinking (i.e. unlinking a file you have open because you know it will go away when the file is closed) are two Unixisms that often bite me when porting Python code to Windows. I try to be good, but old habits die hard. ;)
JJ> Mailmanwin (as I have named it) is probably not useful for
JJ> anyone but me (and my company) right now; some things do not
JJ> work at all (web interface, e-mail archive, usenet gateway,
JJ> all the bin scripts) and some things are changed to make them
JJ> better fit my needs.
What version of Mailman are you running? I'd be interested in looking at any patches that help port Mailman to Windows (or any other platform for that matter). I develop on Linux these days, and before leaving CNRI, primarily Solaris. I'm fairly confident Mailman runs on any (sane :) Unix-like OS, and I have nothing philosophical against porting Mailman to any platform that Python runs on -- and that's a lot of platforms. But I don't have much time to do that work myself, so such porting necessarily relies on contributions from others.
JJ> I have made an "install" script doing all the work and
JJ> describing all the changes, so it's fairly easy getting
JJ> started. I hope to get a webpage up with these things soon.
When you're ready to submit patches, please upload them to SourceForge. I've created a new patch category called "cross platform".
JJ> I don't expect the mailman developers to take account of any
JJ> of these changes. I fully understand and respect that this is
JJ> a Linux project and would hate if cross platform issues in any
JJ> way affected the future direction of Mailman. Having said
JJ> that, it would be nice if no module names conflicted with
JJ> modules in the standard Python distribution (mailbox) ;)
This should actually be better for Python 2.1 since the case-sensitivity on imports for case-preserving case-insensitive file systems (e.g. Windows) has been greatly improved (I've been told). I thought about renaming Mailbox.py, but that's a PITA because I don't want to lose the CVS history and renaming-retaining-history can't be done without access to the CVS repository. I'll probably just require MacOSX and Cygwin (and Windows :) users to use to Python 2.1. Everyone else should be fine with Python 2.0 or 2.1.
JJ> 1. Delivering messages to scripts/post I could not find any
JJ> MTA for Windows (I didn't look much, though) that was able to
JJ> get the toaddr and deliver the message to scripts/post.
JJ> Instead we are using L-soft LSMTP (we used L-soft LISTSERV
JJ> before changing to Mailman). LSMTP is told to save all
JJ> messages (complete with all envelope header information) and I
JJ> have made a Python script that parses each message and calls
JJ> Enqueu with the correct parameters.
JJ> This works well, except that we have had a couple of mail
JJ> loops because of auto-responders replying directly to the
JJ> list. So my question is, what information does a MTA look for
JJ> before passing the message to post?
In the usual Unix MTA world, nothing, it's a dumb pipe. Mailman itself looks at the incoming message for X-BeenThere headers and raises a LoopError if it finds one that matches the list address. There's no guarantee that'll be preserved during the loop though, and in that case there isn't much that can be done.
JJ> I found out that filtering out all messages with daemon and/or
JJ> postmaster in the fromaddr is a good idea. Are there any
JJ> other "keywords" that i should know of?
You might look at LIKELY_BOUNCE_SENDERS in Defaults.py, which includes mailer-daemon, orphanage, and postoffice though I can't personally remember ever seeing bounce message originate from the latter two.
JJ> 2. Empty envelope fromaddr In some messages the envelope
JJ> fromaddr is empty. Is it safe to never deliver a message with
JJ> an empty envelope fromaddr to a list?
I've no idea, since I don't know why for you the From_ header is missing sometimes.
JJ> 3. Using the envelope fromaddr or the message fromaddr I can
JJ> see that this is a Mailman setting. What are the consequences
JJ> of using only the envelope fromaddr?
In practice, you'll get a lot more holds if you limit postings to members only. While the From: header is easily spoofable, it turns out to be a much greater PITA to use the From_ header (which itself isn't that hard to spoof).
JJ> Just for the record. L-soft LISTSERV is a great product - the
JJ> most solid/stable I have ever used. We chaned to Mailman
JJ> because we needed some things LISTSERV didn't have.
Cool! If you have the time, perhaps you can post a list of things you like about LISTSERV that Mailman doesn't have, and vice versa.
-Barry

Barry A. Warsaw wrote:
Mailman 2.0.3, but it will work with 2.0.4 if only changes to qrunner was made there. I am completely new to the world of sourceforge and cvs and patches and other joys it may bring. Right now my only weapon is a python script that modies Mailman to run on Windows.
But using the cvs patch system is probably a good idea and I will try to go that way instead.
Barry A. Warsaw wrote:
That sounds great, time for another upgrade then ;)
Barry A. Warsaw wrote:
I know LISTSERV would refuse two messages with similar text sent to the same list. Or that is, the first message is sent to the list and all following messages with similar text are rejected. I don't know if this was a word by word comparison or a message size comparison.
Has something similar been discussed for Mailman? Or maybe I am making a bigger issue out of this than it is. I am just terrified, that one morning I will find out, that one of the lists has been talking with some auto-reply system all night long.
Jesper.
participants (2)
-
barry@digicool.com
-
Jesper Jensen