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:
>
>     ssm...@example.com        (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:
>
>     ssm...@example.com        (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

ssm...@example.com        (XYZ, 012345, Smith, S.A. (Sam))

and

ssm...@example.com        (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: 'ssm...@example.com'

and

name: 'Smith, S.A. Sam      :012345', address: 'ssm...@example.com'

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 <m...@msapiro.net>        The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan

------------------------------------------------------
Mailman-Users mailing list Mailman-Users@python.org
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