use Mail::Webmail::Gmail; $|=1; $message_limit = 500; $gmail_limit = $ARGV[2]; # Requesting a huge delete can get your account banned if ($gmail_limit > 1 && $gmail_limit < $message_limit + 1 ) { $message_limit = $gmail_limit; } else { $message_limit = 50; } print "\n"; print "Gmail trash cleaner v1.0\n"; # Log in to Gmail my $gmail = Mail::Webmail::Gmail->new( username => $ARGV[0], password => $ARGV[1], ); print "- Connecting with username $ARGV[0] and password $ARGV[1]\n"; print "- Deleting a maximum of $message_limit from your trash\n"; # Get a list of messages in the trash folder my $messages = $gmail->get_messages( label => $Mail::Webmail::Gmail::FOLDERS{ 'TRASH' } ); # Do something if we get a list of messages if ( @{ $messages } ) { my $test = 0; my @msgids; foreach ( @{ $messages } ) { $test++; if ( $test == $message_limit ) { last; } else { push( @msgids, $_->{ 'id' } ); } } print "About to delete " . @msgids . " messages\n"; $gmail->delete_message( msgid => \@msgids, search => 'trash', del_message => 1 ); if ( $gmail->error() ) { print $gmail->error_msg(); } else { print "Deleted " . @msgids . " Messages\n"; } } ### Print out space remaining in mailbox my $remaining = $gmail->size_usage(); print "Remaining: '" . $remaining . "'\n";