- if ($verbose) {
- $sth = $dbh->prepare("SELECT COUNT(*) FROM message_queue");
- $sth->execute() or die $dbh->errstr;
- my @count_arr = $sth->fetchrow_array;
- print "Deleting $count_arr[0] entries from the mail queue.\n";
- }
- $sth = $dbh->prepare("TRUNCATE message_queue");
- $sth->execute() or $dbh->errstr;
- print "Done with purging the mail queue.\n" if ($verbose);
+ print "Mail queue purge triggered for $mail days.\n" if ($verbose);
+
+ $sth = $dbh->prepare("DELETE FROM message_queue WHERE time_queued < date_sub(curdate(), interval ? day)");
+ $sth->execute($mail) or die $dbh->errstr;
+ my $count = $sth->rows;
+ $sth->finish;
+
+ print "$count messages were deleted from the mail queue.\nDone with message_queue purge.\n" if ($verbose);