home *** CD-ROM | disk | FTP | other *** search
- #!/usr/bin/perl
- # Created by Jimmy O'Regan
-
- ## Script to automate the deletion of spam from Mailman's admin queue,
- ## via screen-scraping and filling in of the required fields on the
- ## administrative Web forms. Requires a reasonable Perl installation
- ## and the WWW::Mechanize module from CPAN. WARNING: This script will
- ## delete ALL of a specified Mailman mailing list's current held mail,
- ## so you'll want to clear any exceptions manually before running it.
- ##
- ## Discussion that produced this script can be read here:
- ## http://linuxgazette.net/110/tag/8.html
-
- use warnings;
- use strict;
- use WWW::Mechanize;
-
- ##### User-configurable variables #######################
- my $password = 'PASSWORD';
- my $url = 'URL';
-
- # Set to non-zero to generate a troubleshooting log
- my $debug = 0;
- ##### Past this point, There Be Dragons... ##############
-
- my ( $mech, $content, %name ) = WWW::Mechanize -> new();
- $mech -> get( $url );
- $mech -> submit_form( fields => { adminpw => $password } );
- $content = $mech -> content();
-
- die "\u$&.\n" if $content =~ /no pending requests/;
-
- for ( grep /^senderaction-/, split /[ \n"']/, $content ){
- unless ( exists $name{ $_ } ){
- print "Deleting $_\n";
- $name{ $_ } = 3;
- }
- }
-
- $mech -> submit_form( fields => \%name );
-
- if ( $debug ){
- use Data::Dumper;
- open Fh, ">admreqrm.log" or die "Can't open log $!\n";
- print Fh Dumper( %{ $mech->response() } );
- }
-