Hello all,
I'm new to the list, so I'll introduce myself briefly. I'm located in
Warsaw, Poland. I have been using free software for more that 10 years,
I have been a member of several OS projects including Jakarta Turbine
and MaxQ, occasional contributor in several others. I have also
established a few OS projects in the course of my company operations.
(see http://objectledge.org/related-projects.html). I work full time as
Java/J2EE developer full time for 5+ years now. I don't know much Python
yet but I'm a quick learner ;-). I happen to also be the sysadmin in my
company and I have experience working with Mailman as list & site
administrator.
On to the business :-)
We (http://caltha.pl) are currently developing a Java-powered WWW
application for group collaboration (http://cyklotron2.cyklotron.org).
The application includes (among others) discussion forums. We are
looking for possibilities of enhancing the forums is such way that users
could interact with them using e-mail in addition to the web-based
interface. Messages posted to the forum using e-mail should be displayed
along those entered through the web interface, with appropriate
threading, and users should be able to receive all messages in their
mailbox possibly ignoring the web interface completely. At the same time
we would like to perform all administrative activities through the web
interface provided by our application including moderation of
subscription requests, and moderation of individual messages.
We are fully aware of the magnitude of complexity of the mailing list
software, so it was natural to look for software that is already
available. Mailman was the obvious choice because of it's maturity,
features and the fact that we have experience in using it.
As we looked for ways of integrating Mailman with our application
written in Java, we thought about running first thought Mailman code
under jython, when this turned out to be impossible, we thought about
running scripts from $MAILMAN_HOME/bin as external processes spawned by
Java VM + writing custom glue scripts in Python invoking parts of
Mailman codebase. This solution has the obvious disadvantage of
starting a python interpreter and loading Mailman code to perform each
operation and terminating it right afterwards. Of course startup time of
Python interpreter is nothing comparing to Java VM, still it is a waste
of system resources. The next idea was implementing some sort of daemon
in Python that would stay in memory with all the necessary code loaded
and communicated with the Java application using, say XMLRPC. And bingo!
We discovered that this is already being worked on.
We are very much interested joining the effort in developing
mailman-xmlrpc. At this point we'll be happy to serve as early adopters
& testers (in fact we have already built the patched codebase, launched
it and connected to it using an ad hoc Java based client). We also hope
to start providing patches as soon as our knowledge of Python and
Mailman codebase increases.
My question at this point is whether this is the appropriate list to
discuss mailman-xmlrpc specific topics, or should these be taken to
somewhere else perhaps a dedicated list should be created at
http://savannah.nongnu.org/mail/?group=mailman-xmlrpc ?
Rafał
I've got a listadmin who likes to customize things, and she ran in to a
bug in 2.1.7 on line 160 of edithtml.py. Here's the traceback from the
logs:
admin(23994): [----- Mailman Version: 2.1.7 -----]
admin(23994): [----- Traceback ------]
admin(23994): Traceback (most recent call last):
admin(23994): File "/mailman/mailman-sflovers/scripts/driver", line 101,
in ru
n_main
admin(23994): main()
admin(23994): File "/mailman/mailman-sflovers/Mailman/Cgi/edithtml.py",
line 1
25, in main
admin(23994): ChangeHTML(mlist, cgidata, template_name, doc)
admin(23994): File "/mailman/mailman-sflovers/Mailman/Cgi/edithtml.py",
line 1
60, in ChangeHTML
admin(23994): code = re.sub(r'<([/]?script.*?)>', r'<\1>', code)
admin(23994): NameError: global name 're' is not defined
admin(23994): [----- Python Information -----]
admin(23994): sys.version = 2.4.2 (#2, Mar 15 2006, 15:40:10)
[GCC 3.4.2]
admin(23994): sys.executable = /usr/local/bin/python
admin(23994): sys.prefix = /usr/local
admin(23994): sys.exec_prefix = /usr/local
admin(23994): sys.path = /usr/local
admin(23994): sys.platform = sunos5
I can include the rest if necessary, but I'd rather not toss around the
contents of the cookies and such if it isn't.
Seems pretty clearcut to me, I just don't know what the global there
*should* be.
---
Joel Lord
Sound Designer, Nine, Schenectady Light Opera
Chair, Albacon 2006
Web Master, Alpha Psi Omega Grand Cast
etc... etc... etc...
Last week, I posted the following to the mailman-users list. The silence
was deafening as they say (I actually got one good response, but only
one). So, does anyone here want to offer an opinion?
There have been a couple of threads on the (mailman-users) list in the
last week or two regarding not sending the content of the original post
in reject notices to the (alleged) poster and in owner notifications.
I'm considering implementing these options for Mailman 2.2, but I want
some feed back to be sure I'm doing what people want and to be sure
I'm not overlooking things.
Here are my areas of concern.
First, should these be site wide mm_cfg.py options or should they be
per-list options with a default from mm_cfg.py? In either case, the
Defaults.py setting would match current behavior.
I see a few different cases of notices which include the original message.
Bounce processing sends unrecognized bounces to the owner if
bounce_unrecognized_goes_to_list_owner is on. Since these notices are
meaningless without the actual message, I think there is no need for
an additional setting here. Also, if bounce_notify_owner_on_disable is
on, the owner gets a copy of the triggering bounce, but this should
always be a legitimate DSN in response to a message from the list, so
I don't see a need to provide an option to exclude the DSN from the
notification.
The privacy options reject_these_nonmembers, generic_nonmember_action
and header_filter_rules can automatically reject a post. Currently,
the original post is included. I foresee a single option (should it be
site wide or per list) to control putting the original in the reject
notice.
The moderator can reject a held post. Currently the original post is
not included. I don't see a need to change this.
If admin_immed_notify is on, notices of individual held posts are sent
to the owners/moderators and these include the original post. I foresee
an option separate from the reject option (and should this be site wide
or per list) to put only summary information (From:, Subject: hold
reason) in this notice.
Note that this last can be 'almost' accomplished currently by turning
admin_immed_notify off and increasing the frequency of the
cron/checkdbs job from daily to maybe hourly, although this would
affect all lists.
--
Mark Sapiro <msapiro(a)value.net> The highway is for gamblers,
San Francisco Bay Area, California better use your sense - B. Dylan
Hi Mailman-Users, -Developers and -i18ners,
Mailman 2.1.8b1 was released for beta test. Talks are going around on
the start of 2.2 after the release of 2.1.8 the final of 2.1-maint
branch. I really want to call this final than beta but we should take
careful steps.
Please download it from Sourceforge file area:
http://sourceforge.net/project/showfiles.php?group_id=103
Cheers,
Tokio
---------------------------------------------------
Here is a history of user visible changes to Mailman.
2.1.8b1 (23-Mar-2006)
Bug fixes and other patches
- Bouncers support added: 'unknown user', Microsoft SMTPSVC,
Prodigy.net
and several others.
- Updated email library to 2.5.7 which will encode payload into
qp/base64
upon setting. This enabled backing out the scrubber related patches
including 'X-Mailman-Scrubbed' header in 2.1.7.
- Fix SpamDetect.py potential hold/reject loop problem.
- A warning message from email package to the stderr can cause error
in Logging because stderr may be detached from the process during
the qrunner run. We chose not to output errors to stderr but to
the logs/error if the process is running under mailmanctl subprocess.
- DKIM header cleansing was separated from Cleanse.py and added to
-owner messages too.
- Fixes: Lose Topics when go directly to topics URL (1194419).
UnicodeError running bin/arch (1395683). edithtml.py missing import
(1400128). Bad escape in cleanarch. Wrong timezone in list archive
index pages (1433673). bin/arch fails with TypeError (1430236).
Subscription fails with some Language combinations (1435722).
Postfix delayed notification not recognized (863989). 2.1.7 (VERP)
mistakes delay notice for bounce (1421285). show_qfiles: 'str'
object has no attribute 'as_string' (1444447). Utils.get_domain()
wrong if VIRTUAL_HOST_OVERVIEW off (1275856).
Miscellaneous
- Brad Knowles' mailman daily status report script updated to 0.0.16.
--
Tokio Kikuchi, tkikuchi@ is.kochi-u.ac.jp
http://weather.is.kochi-u.ac.jp/
On Sat, 2006-03-18 at 10:15 -0800, msapiro(a)users.sourceforge.net wrote:
> Update of /cvsroot/mailman/mailman
> In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30399
>
> Modified Files:
> NEWS
> Log Message:
> Added a new list attribute 'subscribe_auto_approval' which is a list of email addresses
> and regular expressions matching email addresses whose subscriptions are exempt
> from admin approval. RFE 403066.
Should we be a little cautious about putting new features into 2.1? I
think that once 2.1.8 goes out and we switch to svn, it'll be a lot
easier to start working on 2.2, where the bulk of new features like this
can go.
-Barry
Hello,
I am trying to debug a problem with the confirmation from one of my
users.
The user as replied to the invitation email but her subscriptions has
been refused (her state is still S).
Here are the gory details:
(I have obscured only mail addresses and list details. IP addresses
and confirmation string are untouched.
Sorry for the long line length.)
invitation sent:
2006-03-16 00:38:07 IW70BJ-000K5I-JO <= mylist-bounces
+user=domain(a)list.server H=localhost (g4.local) [127.0.0.1] P=esmtp
S=2041 id=mailman.0.1142465885.26117.mylist(a)list.server
2006-03-16 00:38:08 IW70BJ-000K5I-JO => user@domain R=dnslookup
T=remote_smtp H=mx1.libero.it [193.70.193.95]
3 attempts by the user to confirm subscription, they are sent to the
correct confirm address:
2006-03-16 10:43:17 IW7SC5-0002D5-0Z <= user@domain H=smtp5.libero.it
[193.70.192.55] P=esmtp S=1982 id=IW7S96
$A6460D465ACAB1F3B705458C794DF7C1(a)libero.it
2006-03-16 10:43:18 IW7SC5-0002D5-0Z => mylist <mylist-confirm
+8a671672b88489848cd212b368d290cc343af848(a)list.server>
R=mailman_router T=mailman_transport
2006-03-16 10:43:18 IW7SC5-0002D5-0Z Completed
2006-03-16 10:43:22 IW7SCA-0002DA-HL <= mylist-bounces
+user=domain(a)list.server H=localhost (g4.local) [127.0.0.1] P=esmtp
S=3833 id=mailman.54.1142502199.2491.mylist(a)list.server
2006-03-16 10:43:24 IW7SCA-0002DA-HL => user@domain R=dnslookup
T=remote_smtp H=mx1.libero.it [193.70.193.95]
2006-03-16 10:43:24 IW7SCA-0002DA-HL Completed
2006-03-16 10:45:09 IW7SF9-0002DI-2J <= user@domain H=smtp2.libero.it
[193.70.192.52] P=esmtp S=2905 id=IW7SCA
$74805EBCDDDF86B284ECA9380FB5979F(a)libero.it
2006-03-16 10:45:10 IW7SF9-0002DI-2J => mylist <mylist-confirm
+8a671672b88489848cd212b368d290cc343af848(a)list.server>
R=mailman_router T=mailman_transport
2006-03-16 10:45:10 IW7SF9-0002DI-2J Completed
2006-03-16 10:45:13 IW7SFD-0002DR-3R <= mylist-bounces
+user=domain(a)list.server H=localhost (g4.local) [127.0.0.1] P=esmtp
S=5836 id=mailman.55.1142502310.2491.mylist(a)list.server
2006-03-16 10:45:16 IW7SFD-0002DR-3R => user@domain R=dnslookup
T=remote_smtp H=mx1.libero.it [193.70.193.95]
2006-03-16 10:45:16 IW7SFD-0002DR-3R Completed
2006-03-16 10:46:58 IW7SIA-0002DU-E3 <= user@domain H=smtp3.libero.it
[193.70.192.127] P=esmtp S=1771 id=IW7SFC
$6E27427742E6C42C9FB6F56151FC9726(a)libero.it
2006-03-16 10:46:59 IW7SIA-0002DU-E3 => mylist <mylist-confirm
+8a671672b88489848cd212b368d290cc343af848(a)list.server>
R=mailman_router T=mailman_transport
2006-03-16 10:46:59 IW7SIA-0002DU-E3 Completed
The user received the following error after the first attempt, I just
cut some received lines.
The message is in italian and reads more or less:
Results: invalid confirmation string [...]
Not processed:
confirm 8a671672b88489848cd212b368d290cc343af848
End
Return-Path: <mylist-bounces+user=domain(a)list.server>
Received: from smtp3.libero.it (193.70.192.127) by ims19c.libero.it
(7.2.059.5)
id 4406D169001733AB for user@domain; Thu, 16 Mar 2006
10:43:19 +0100
[...]
Received: from localhost ([127.0.0.1] helo=g4.local)
by tempesta.mydomain with esmtp (Exim 4.60)
(envelope-from <mylist-bounces+user=domain(a)list.server>)
id IW7SIE-0002DZ-GK
for user@domain; Thu, 16 Mar 2006 10:47:02 +0100
Subject: =?iso-8859-1?q?Risultati_dei_comandi_nel_tuo_messaggio?=
From: mylist-bounces(a)list.server
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="===============1898544924=="
Message-ID: <mailman.56.1142502420.2491.mylist(a)list.server>
Date: Thu, 16 Mar 2006 10:47:00 +0100
Precedence: bulk
X-BeenThere: mylist(a)list.server
X-Mailman-Version: 2.1.7
List-Id: newsletters <mylist.list.server>
X-List-Administrivia: yes
To: user@domain
Sender: mylist-bounces+user=domain(a)list.server
Errors-To: mylist-bounces+user=domain(a)list.server
X-HUMPH-Peer-rDNS: localhost
--===============1898544924==
Content-Type: text/plain; charset="iso-8859-1"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
I risultati dei comandi che erano nel tuo messaggio sono mostrati qui
sotto. Allegato trovi il tuo messaggio originale.
- Risultati:
Stringa di conferma non valida. Nota che le stringhe di
convalida =
scadono approssimativamente dopo 3 giorni dalla richiesta iniziale.
Se la tua richiesta =E8 scaduta, per favore ripeti la procedura da capo.
- Non elaborati:
confirm 8a671672b88489848cd212b368d290cc343af848
- Finito.
--===============1898544924==
Content-Type: message/rfc822
MIME-Version: 1.0
Received: from smtp3.libero.it ([193.70.192.127])
by tempesta.mydomain with esmtp (Exim 4.60)
(envelope-from <user@domain>) id IW7SIA-0002DU-E3 for
mylist-confirm+8a671672b88489848cd212b368d290cc343af848(a)list.server;
Thu, 16 Mar 2006 10:46:58 +0100
[...]
Thu, 16 Mar 2006 10:46:49 +0100
Date: Thu, 16 Mar 2006 10:45:12 +0100
Message-Id: <IW7SFC$6E27427742E6C42C9FB6F56151FC9726(a)libero.it>
Subject: =?iso-8859-1?b?
UmU6yCByaWNoaWVzdGEgbGEgdHVhIGNvbmZlcm1hIHBlcg==?=
=?iso-8859-1?b?IGlzY3JpdmVydGkgYWxsYSBsaXN0YSBlbGZvLW5ld3M=?=
MIME-Version: 1.0
X-Sensitivity: 3
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
From: "user\(a)domain\.it" <user@domain>
To: "mylist-confirm+8a671672b88489848cd212b368d290cc343af848"
<mylist-confirm+8a671672b88489848cd212b368d290cc343af848(a)list.server>
X-XaM3-API-Version: 4.3 (R1) (B3pl14)
X-SenderIP: 85.18.136.77
X-Scanned: with antispam and antivirus automated system at libero.it
X-HUMPH-Peer-rDNS: ns2.libero.it ns1.libero.it
confirm 8a671672b88489848cd212b368d290cc343af848
the list pending pick contains:
'8a671672b88489848cd212b368d290cc343af848': ( 'S',
<UserDesc
user@domain (User Name) [password] [digest? no] [it]>),
'evictions': { '1fb8a40026d6ba70cd0b7673aee8b981cb8357fe':
1142730263.5198989,
'3e60d959c6fcbb0283b99aeb8d989dbdcfc9add5':
1142532050.440028,
'4b6064163c503671ab56742747995dc69b4e5340':
1142515273.500232,
'4d00983d4870ded7dd7f71b4afa076d933cb20b4':
1142606644.057848,
'4f596c21fc862542571bd0a27f69fb9e28cc4d37':
1142515273.444937,
'69688a2fd5d9b58b9d742fd759414f5cc7488986':
1142730265.8702731,
'73216e6fe18ef24607477491f1abc345cd7f670f':
1142724911.066819,
'8339c1f4fb851dbdd954f697120d367e480637cd':
1142764046.192688,
'84af391da0af8bfc54b16214082ebb0f2b7c758e':
1142684865.5612831,
'8a671672b88489848cd212b368d290cc343af848':
1142725085.0594411,
'fe7403de2e82c6834deb1bae05b403a1fc7fa03f':
1142730263.8872991},
Note that the confirmation string is correct but that the
confirmation string also appears in evictions.
Any ideas?
Thanks
Giuliano
Hello. How might one configure Mailman (version 2.1.6) list settings
using PHP scripts? The goal is to configure Mailman list settings such as
domain name of list, non-digest footer, set welcome/goodbye messages, etc.
An approach that comes to mind is to use bin/config_list. This would
require writing/reading files and using bin/config_list to process them.
Is there another recommended or preferred way to accomplish this?
There was a post about "PHP Wrappers" which suggested, "...just use a
setuid mailman wrapper script that does caller-checking to see if it's
called correctly, by the right user, and with 'safe' values"
<http://mail.python.org/pipermail/mailman-developers/2001-March/008421.html>.
This was recommended over simply adding the www user to the mailman group.
I do not completely understand how one creates a setuid mailman wrapper
script. Is this a matter of creating something similar to mail-wrapper.c?
If someone has written a wrapper script or has some good resources further
explaining this to share and is willing to do so, I would appreciate it.
Thank you,
-Adrian
Hi,
on 2006-03-13 I have migrated the gPhoto project from SF.net CVS to
SF.net SVN by just clicking the respective button on the web
interface.
I want to share this experience in order to help you decide as to if,
how and when to do a CVS->SVN migration of Mailman.
It started with an about 10 day's notice so people would be aware of
the change beforehand and could commit their stuff before and not
interfere with the migration itself.
On day zero, The SF.net cron job started the migration started 3
minutes after I had clicked the button and finished it 40 more minutes
later.
You can compare the results in the web interface:
CVS: http://cvs.sourceforge.net/viewcvs.py/gphoto/
SVN: http://svn.sourceforge.net/viewcvs.cgi/gphoto/
but I'll try to illustrate it here. The resulting SVN repository is
structured like this:
branches/
libgphoto2-2.1.4/
libgphoto2/
gphoto2-2.1.4/
gphoto2/
tags/
libgphoto2-2.1.4-rc3/
libgphoto2/
libgphoto2-2.1.4-release/
libgphoto2/
gphoto2-2.1.4-rc2/
gphoto2/
gphoto2-2.1.4-release/
gphoto2/
trunk/
gphoto2/
libgphoto2/
where the CVS repository was structured like this:
gphoto2/
libgphoto2/
with "libgphoto2-2.1.4" being a branch of "libgphoto2/" leading to the
tags "libgphoto2-2.1.4-rc3" for the release candidate and
"libgphoto2-2.1.4-release" for the release, and analogously for
"gphoto2" and its branches and tags.
You can imagine what the Mailman SVN would look like after this
migration. If one need a different directory structure, things
probably get a little more interesting than just one click in the web
interface and a little waiting time :) However, I didn't have the
nerve to do that.
The CVS repository remains available, so anybody can still run
"cvs diff" on existing working copies or check out older versions
from before the migration via CVS.
Additional jobs:
* In order to prevent people from continuing their work with CVS, I
have patched the autogen.sh and configure scripts to abort with a
message on the CVS->SVN migration and then have disabled commit
access via CVSROOT.
* I have not (yet) found a way to continue using the very same
working copy from CVS with SVN, but have shown people the basic
commands to check out from SVN, commit to SVN (with user
credentials), and how to merge a patch of their uncommitted CVS
changes into SVN.
* Some docs and web pages referring to CVS needed to be changed, and
finally, I made announcements on the mailinglist and the SF.net
project News and changed the SF.net project page to show only SVN,
not CVS.
* Set up the commit hook scripts for e-mail and ciabot notification.
Note that SF.net SVN does not allow fine-grained permission setup
to the SVN repository like it allows via CVS hook scripts. With
SVN, write access is either all or nothing.
* Migrate the definitions from CVSROOT/modules via
svn propedit svn:externals .
* One or two smaller things I have forgotten to list here.
We have no experience with long term user acceptance yet. People
uncomfortable with SVN/CVS and with possibly installing a new software
package on their system may be annoyed a little. I could imagine this
won't be much of a problem for Mailman, though, as Mailman caters more
to sysadmins where (lib)gphoto2 also addresses end users.
I hope this can help with preparations. Feel free to ask questions any
time.
Gruß,
Hans Ulrich Niedermann
I've made a small patch to HTMLFormatter.py to provide for a canonical (aka
lowercase) list name. This is handy for a variety of reasons.
383a384
> '<mm-lc-list-name>' : self.real_name.lower(),
I don't really care if it is called mm-lc-list-name or mm-canonical-list-name
or what not, I simply find the regularized name useful for some applications.
Any comments?
--
Andrew Clark
Campus Network Programmer
University of California, Santa Barbara
andrew.clark(a)ucsb.edu (805) 893-5311
SourceForge has recently made Subversion available to projects, and I am
planning on switching us from CVS to Subversion after the 2.1.8 release
goes out. If you don't access the bleeding edge Mailman code in the
source repository, you probably don't care, and can ignore the rest of
this message.
If you've used Subversion before, you're well aware of the many
advantages of using it over CVS. I'm psyched to make the switch, and
Tokio and Mark are on-board with it. I may even start finding time to
begin hacking on the code again. :)
If you haven't used Subversion before, now's a good time to take a look.
You can start here:
http://svnbook.red-bean.com/
You should easily be able to find Subversion clients for any major *nix
distro. I think it's pretty easy for CVS users to learn how to use
Subversion, especially if you're mostly doing anonymous checkouts.
I will send out another message just before I make the switch. I'm not
sure how smoothly it will go -- SF has automated the process, at least
for 'sane' CVS repositories. Hopefully ours is sane! Once the change
is made, I think the old CVS repository will still be available, but all
the fun stuff will be happening in the Subversion repository.
-Barry