Barry Finkel wrote:

>I think I may have uncovered a bug in Mailman 2.1.13.  I have not
>completed my research.  I have a script that refreshes the subscriber
>list via:
>
>/usr/lib/mailman/bin/sync_members -w=no -g=no -d=no -a=no \
>     -f /etc/mailman/generated_lists/LISTNAME LISTNAME
>
>where
>
>     /etc/mailman/generated_lists/LISTNAME
>
>is a file that contains a possibly updated mailing list.  In that file
>there is a line:
>
>     [email protected]        (XYZ, 012345, Smith, S.A. (Sam))
>
>and after I run the sync_members, every line below this one is
>ignored; the e-mail addresses in those lines are unsubscribed from
>the list.  This has happened with two lists since I installed
>Mailman 2.1.13 (replacing 2.1.11 - I never installed 2.1.12 in
>production).  The third list that contains this e-mail address has
>a different format:
>
>     [email protected]        (Smith, S.A. (Sam)      :012345)
>
>and that list has no problems.  I have not yet checked for changes in
>the sync_members source from 2.1.11 to 2.1.12 to 2.1.13.


There are no changes in sync_members. What has changed is in 2.1.11,
Mailman used its own email package (version 2.5.8) installed in
Mailman's pythonlib directory. Beginning with 2.1.12, Mailman uses the
email package of the installed Python which depends on version.

The difference is almost certainly in email.Utils.getaddresses() which
is used to parse the lines of the input into 'address' and 'display
name + comment' parts.

I think the problem is that the addresses

[email protected]        (XYZ, 012345, Smith, S.A. (Sam))

and

[email protected]        (Smith, S.A. (Sam)      :012345)

contain comments within comments and email.Utils.parseaddr() used by
email.Utils.getaddresses() can be confused by this. However, email
4.0.1 which is in most recent Python versions parses those into

name: 'XYZ, 012345, Smith, S.A. Sam', address: '[email protected]'

and

name: 'Smith, S.A. Sam      :012345', address: '[email protected]'

respectively, so that should be OK. Also email 3.0+ from python 2.4.2
gives the same result.

In any case, I am surprised at the result. If sync_members finds any
member addresses in the input file that appear invalid, it reports
these and quits before doing anything to the list, and if it throws an
exception while updating the list, it quits without saving the updated
list.

What's in Mailman's error log? What's in the output from sync_members?

-- 
Mark Sapiro <[email protected]>        The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan

------------------------------------------------------
Mailman-Users mailing list [email protected]
http://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://wiki.list.org/x/AgA3
Security Policy: http://wiki.list.org/x/QIA9
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-users/archive%40jab.org

Reply via email to