#!/usr/bin/perl -w use strict; require Crypt::Cracklib; require DBI; require DBD::mysql; chomp( my $psapass = `cat /etc/psa/.psa.shadow` ); my $dsn = "DBI:mysql:psa"; my $dbh = DBI->connect($dsn, "admin", "$psapass", {'RaiseError' => 1} ); my $sth = $dbh->prepare("select concat(mail_name,'\@', domains.name) as `e-mail`, password from domains left join mail on domains.id=mail.dom_id left join accounts on mail.account_id = accounts.id where postbox='true';"); $sth->execute(); while ( my $ref = $sth->fetchrow_hashref() ) { if ( !Crypt::Cracklib::check( $ref->{'password'}) ) { print "$ref->{'e-mail'}:$ref->{'password'}\n"; } } $sth->finish(); $dbh->disconnect();