Viewing file: list_mailq.cgi (3.54 KB) -rwxr-xr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/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 "<center>\n"; $s = int($in{'start'}); $e = $in{'start'} + $config{'perpage'} - 1; $e = @qfiles-1 if ($e >= @qfiles); if ($s) { printf "<a href='list_mailq.cgi?start=%d'>%s</a>\n", $s - $config{'perpage'}, "<img src=/images/left.gif border=0 align=middle>"; } print "<font size=+1>",&text('mail_pos', $s+1, $e+1, scalar(@qfiles)),"</font>\n"; if ($e < @qfiles-1) { printf "<a href='list_mailq.cgi?start=%d'>%s</a>\n", $s + $config{'perpage'}, "<img src=/images/right.gif border=0 align=middle>"; } print "</center>\n"; } else { # Can show them all $s = 0; $e = @qfiles - 1; }
# Show the queued mails $quarcount = &mailq_table([ @qfiles[$s .. $e] ], \%qmails);
# Show queue search form print "<form action=mailq_search.cgi>\n"; print "<b>$text{'mailq_search'}</b>\n"; print "<select name=field>\n"; foreach $f ('from', 'subject', 'to', 'cc', 'date', 'status', 'body', 'headers', 'size', '', '!from', '!subject', '!to', '!cc', '!date', '!status', '!body', '!headers', '!size') { printf "<option value='%s'>%s\n", $f, $text{"match_$f"}; } print "</select>\n"; print "<input name=match size=20>\n"; print " <input type=submit value='$text{'mail_ok'}'>\n"; print "</form>\n";
# Show flush button(s) if ($access{'flushq'}) { print &ui_hr(); print &ui_buttons_start(); print &ui_buttons_row("flushq.cgi", $text{'mailq_flush'}, $text{'mailq_flushdesc'}); if ($quarcount) { print &ui_buttons_row("flushq.cgi", $text{'mailq_flushquar'}, $text{'mailq_flushquardesc'}, &ui_hidden("quar", 1)); } print &ui_buttons_row("list_mailq.cgi?$in", $text{'mailq_refresh'}, $text{'mailq_refreshdesc'}); print &ui_buttons_end(); } } else { print "<b>$text{'mailq_none'}</b> <p>\n"; }
&ui_print_footer("", $text{'index_return'});
|