Dear Mailman-users, Read this part first, it didn't come through the first time.
Our Solaris server got hacked and I'm porting its function to an existing Suse Linux box. Listproc (known with no affection here as "The Impaler") won't compile so we have decided to make the break to Mailman. Washington University announce that they will be porting their maillists to Mailman over the next few months. My situation is a bit different. I have about 1300 subscribers on 80 lists to re-create in Mailman, preferably by tomorrow morning. Last night I started writing a quick and dirty perl script to do the job, seems perfectly possible, I have the lists created already. There are heaps of similar queries on this list, so someone must have written a more complete script than I can rush up overnight. However in case there aren't any out there, here is last nights effort, it creates the lists, putting the aliases into /etc/postfix/aliases.lists #!/usr/local/bin/perl $LISTPROC = '/home/alianet/server'; $MAILMAN = '/usr/lib/mailman'; $ALIASES = '/etc/postfix/aliases.lists'; $DEFAULT_PW = 'missing_pw'; $NEWLIST = "$MAILMAN/bin/newlist"; # Put a header into the new alias file open(OUT, "> $ALIASES") or die "Can't write new aliases file $ALIASES\n"; print OUT "#\tAliases for Mailman Lists\n#\n", "#\tWARNING: This file is automatically generated\n", "#\tAny changes made here will be lost\n\n"; close(OUT); # First get a hash of lists and owners. # Since newlist can only give a list 1 owner # we will have to add the other owners later through the web open(IN, "< $LISTPROC/owners") or die "Can't read the Listproc owners file\n"; while (<IN>) { chop; s/^\s//; # strip leading whitespace /^$/ and next; # skip blank lines /^#/ and next; # skip comments ($owner, $list, @options) = split; $list =~ tr/A-Z/a-z/; # canonicalize $list $list eq 'server' and next; # dump old Site Manager entry unless ( $owners{$list} ) { $owners{$list} = $owner; } else { print "Remember to add $address as an owner to $list\n"; } } close(IN); # Now get the passwords from the config files opendir(DIR, "$LISTPROC/lists") or die "Can't find Listproc Lists directory\n"; foreach $list (readdir(DIR)) { -d "$LISTPROC/lists/$list" or next; open(IN, "$LISTPROC/lists/$list/config") or do { warn "No config file for $_ list\n"; next; }; $list =~ tr/A-Z/a-z/; while (<IN>) { chop; ($attribute, undef, $value) = split(/\s+/, $_, 3); $attribute =~/^passwd$/i and $passwords{$list} = $value; } } closedir(DIR); foreach (sort(keys(%owners))) { unless ( $passwords{$_} ) { warn "No password for $list list, using $DEFAULT_PW\n"; $passwords{$_} = $DEFAULT_PW; } print join ' ', $NEWLIST, '-q', '-o', $ALIASES, $_, $owners{$_}, $passwords{$_}, "\n"; system $NEWLIST, '-q', '-o', $ALIASES, $_, $owners{$_}, $passwords{$_}; print "\n"; } -- A right not exercised is a privilege a privilege not exercised is illegal. Michael James [EMAIL PROTECTED] 8 Brennan St Phone: +61 2 6247 2556 Hackett, ACT 2602 Mobile: +61 4 1747 4065 AUSTRALIA Fax: +61 2 6278 0011 ------------------------------------------------------ Mailman-Users mailing list [EMAIL PROTECTED] http://mail.python.org/mailman/listinfo/mailman-users Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/