On Fri, Apr 05, 2002 at 12:24:38PM -0500, Barry A. Warsaw wrote:
"JRA" == Jay R Ashworth <jra@baylink.com> writes: JRA> The problem is that they're already in a database (filePro JRA> for Unix on SCO 5, on a machine behind a Linux 7.1 firewall), JRA> and they want to be able to selectwhom to mail on an adhoc JRA> basis.
JRA> This seems to suggest to *me* that I need to be able to JRA> either 1) set up and strike lists on the mailman side with JRA> some dispatch, or better 2) wire mailman atop the extant JRA> database... which I would prefer to do because I *don't* want JRA> to lose the web-based signoff stuff, etc.
Can you use MM2.1? If so, then your options are many.
Ghod I love the net.
At the moment, the only requirement is that it *work* when I'm done. :-)
Is the Member Adaptor stuff *in* 2.1? Cool; I thought that was 3.0 stuff.
If the membership list needs to change on the fly, then use the new "virtual list" feature. I.e. create a list that all the message will appear to come from but build the recipient list on-the-fly. The easiest way to do this is, use a Python program to suck the data out of filePro (I've no idea how to do that), and build a Python list of recipients addresses. Then, make sure the installed Mailman package is in your sys.path (so your driver script can import Mailman modules).
This is precisely what I needed; with one exception.
Assuming you've got the listname, the list of recipients, and the message as plain text, it might be as simple as:
from Mailman.Post import inject inject(listname, msgtext, recipients)
Note that Mailman/Post.py can also be run as a command line script.
Noted. :-)
Alternatively, you might want to use the new extend.py interface to hook into the MailList instance for your list. If there's a file called extend.py in your lists/listname directory, it will be execfile()'d and a function extend() will be called, passing in the MailList instance.
Your extend() function can do something like, overload the Load() and Save() method so that membership data is funneled to your database. You probably just need to re-implement the MemberAdaptor.py interface and set the mlist._memberadaptor attribute to your customized version. Then everything else should Just Work.
Oh yeah; like it's gonna be that easy.
This is what I really need, assuming as I do that it will allow the "unsubscribe" web page to link back into my live data...
But I'm not sure how to get there from here.
JRA> This is, of course, a paying gig... and it's not impossible I JRA> might sub out the "interface the back of Mailman to my JRA> database" part, particularly if it can be done generally JRA> enough to make accessing filePro data from Python easy, since JRA> that's something I'd find generically useful.
It would be nice if this was spec'd as being releasable under the Python license, so it could be donated back to Python.
Lvoe to go there if I can. If it gets someone a discount, that will make it easier. :-)
Cheers, -- jra
Jay R. Ashworth jra@baylink.com Member of the Technical Staff Baylink RFC 2100 The Suncoast Freenet The Things I Think Tampa Bay, Florida http://baylink.pitas.com +1 727 647 1274
"If you don't have a dream; how're you gonna have a dream come true?" -- Captain Sensible, The Damned (from South Pacific's "Happy Talk")