#!/usr/local/bin/perl # delete_queues.cgi # Delete multiple messages from the postfix queue require './postfix-lib.pl'; $access{'mailq'} || &error($text{'mailq_ecannot'}); &ReadParse(); if ($in{'move'}) { # Re-queuing messages foreach $f (split(/\0/, $in{'file'})) { &system_logged("$config{'postfix_super_command'} -r ". quotemeta($f)); } } elsif ($in{'hold'}) { # Holding messages foreach $f (split(/\0/, $in{'file'})) { &system_logged("$config{'postfix_super_command'} -h ". quotemeta($f)); } } elsif ($in{'unhold'}) { # Un-holding messages foreach $f (split(/\0/, $in{'file'})) { &system_logged("$config{'postfix_super_command'} -H ". quotemeta($f)); } } else { @files = split(/\0/, $in{'file'}); if ($in{'confirm'}) { # Deleting messages if ($postfix_version < 1.1) { @qfiles = &recurse_files($config{'mailq_dir'}); } foreach $f (@files) { $f =~ /^[A-Za-z0-9]+$/ || next; if ($postfix_version >= 1.1) { &system_logged("$config{'postfix_super_command'} -d ".quotemeta($f)); } else { &unlink_file(grep { $_ =~ /\/$f$/ } @qfiles); } } if ($postfix_version < 1.1) { &system_logged("$config{'postfix_super_command'} -p >/dev/null 2>&1"); } &webmin_log("delqs", undef, scalar(@files)); } else { # Ask for confirmation &ui_print_header(undef, $text{'delq_titles'}, ""); print "
\n"; foreach $f (@files) { print &ui_hidden("file", $f),"\n"; } print &ui_form_end([ [ "confirm", $text{'delq_confirm'} ] ]); print "