#!/usr/local/bin/perl # list_mailq.cgi # Display the current mail queue require './sendmail-lib.pl'; require './boxes-lib.pl'; &ReadParse(); $access{'mailq'} || &error($text{'mailq_ecannot'}); print "Refresh: $config{'mailq_refresh'}\r\n" if ($config{'mailq_refresh'}); &ui_print_header(undef, $text{'mailq_title'}, ""); $conf = &get_sendmailcf(); @qfiles = &list_mail_queue($conf); if ($access{'qdoms'}) { # Filter out blocked mails @qfiles = grep { &can_view_qfile($qmails{$_} = &mail_from_queue($_)) } @qfiles; } if ($config{'mailq_sort'} == 0) { # Just sort by ID @qfiles = sort { $a =~ /\/([^\/]+)$/; local $af = $1; $b =~ /\/([^\/]+)$/; local $bf = $1; $af cmp $bf } @qfiles; } else { # We need the actual mails for sorting local $q; foreach $q (@qfiles) { $qmails{$q} ||= &mail_from_queue($q); } if ($config{'mailq_sort'} == 1) { @qfiles = sort { lc(&address_parts($qmails{$a}->{'header'}->{'from'})) cmp lc(&address_parts($qmails{$b}->{'header'}->{'from'})) } @qfiles; } elsif ($config{'mailq_sort'} == 2) { @qfiles = sort { lc(&address_parts($qmails{$a}->{'header'}->{'to'})) cmp lc(&address_parts($qmails{$b}->{'header'}->{'to'})) } @qfiles; } elsif ($config{'mailq_sort'} == 3) { @qfiles = sort { lc($qmails{$a}->{'header'}->{'subject'}) cmp lc($qmails{$b}->{'header'}->{'subject'}) } @qfiles; } elsif ($config{'mailq_sort'} == 4) { @qfiles = sort { lc($qmails{$a}->{'status'}) cmp lc($qmails{$b}->{'status'}) } @qfiles; } elsif ($config{'mailq_sort'} == 5) { @qfiles = sort { $qmails{$b}->{'size'} <=> $qmails{$a}->{'size'} } @qfiles; } } if (@qfiles) { if (@qfiles > $config{'perpage'}) { # Need to show arrows print "
\n"; } &ui_print_footer("", $text{'index_return'});