diff -Nur smeserver-qmHandle-1.4/root/etc/e-smith/web/functions/qmh.altqmail smeserver-qmHandle-1.4/root/etc/e-smith/web/functions/qmh --- smeserver-qmHandle-1.4/root/etc/e-smith/web/functions/qmh.altqmail 2008-07-06 10:49:50.000000000 -0400 +++ smeserver-qmHandle-1.4/root/etc/e-smith/web/functions/qmh 2017-07-10 15:40:37.223705546 -0400 @@ -83,18 +83,45 @@ print eval 'return "'.$fm->localise('QMH_DESC').'\n";'; my %labels = ( - "list-queues" => $fm->localise('LIST_QUEUE'), - "list-local-queue" => $fm->localise('LIST_LOCAL_QUEUE'), - "list-remote-queue" => $fm->localise('LIST_REMOTE_QUEUE'), + "list-queues" => $fm->localise('LIST_QUEUE'), + "list-local-queue" => $fm->localise('LIST_LOCAL_QUEUE'), + "list-remote-queue" => $fm->localise('LIST_REMOTE_QUEUE'), "resend" => $fm->localise('RESEND_QUEUE'), - ); + ); - my @labels = ( - 'list-queues', - 'list-local-queue', - 'list-remote-queue', + my @labels = ( + 'list-queues', + 'list-local-queue', + 'list-remote-queue', 'resend', - ); + ); + + my $altqmail=$conf->get('altqmail') || 0; + if ( $altqmail) + { + %labels = ( + "list-queues" => $fm->localise('LIST_QUEUE'), + "list-local-queue" => $fm->localise('LIST_LOCAL_QUEUE'), + "list-remote-queue" => $fm->localise('LIST_REMOTE_QUEUE'), + "resend" => $fm->localise('RESEND_QUEUE'), + "alt-list-queues" => "altqmail: ". $fm->localise('LIST_QUEUE'), + "alt-list-local-queue" => "altqmail: ". $fm->localise('LIST_LOCAL_QUEUE'), + "alt-list-remote-queue" => "altqmail: ". $fm->localise('LIST_REMOTE_QUEUE'), + "alt-resend" => "altqmail: ". $fm->localise('RESEND_QUEUE'), + ); + + @labels = ( + 'list-queues', + 'list-local-queue', + 'list-remote-queue', + 'resend', + 'alt-list-queues', + 'alt-list-local-queue', + 'alt-list-remote-queue', + 'alt-resend', + ); + + } my $default_action = 'list-queues'; @@ -179,6 +206,33 @@ { deleteMessageNumber($q); } + + elsif ($function eq 'alt-list-queues') + { + showListAltQueues ($q); + } + elsif ($function eq 'alt-list-local-queue') + { + showListLocalAltQueue ($q); + } + elsif ($function eq 'alt-list-remote-queue') + { + showListRemoteAltQueue ($q); + } + elsif ($function eq 'alt-resend') + { + Altresend($q); + } + elsif ($function eq 'alt-confirm-delete-message-number') + { + showDeleteAltMessageNumber ($q); + } + elsif ($function eq 'alt-delete-message-number') + { + deleteAltMessageNumber($q); + } + + else { # Unknown function - refresh the screen anyway @@ -219,6 +273,31 @@ return; } +sub showListAltQueues ($) +{ + my ($q) = @_; + + + esmith::cgi::genHeaderNonCacheable ($q, \%conf, + "altqmail: ". $fm->localise('SHOWLISTQUEUES')); + + { + print $q->hr; + print $q->p($fm->localise('VIEW_TIME')),scalar localtime(time),"\n"; + + my $MailQueues = `/usr/bin/qmHandle -X -l`; + $MailQueues =~ s//'/g; + + $MailQueues = AddAltLinks($MailQueues, $q); + + print $q->p ($q->pre ("$MailQueues")); + } + + esmith::cgi::genFooter($fm); + return; +} + sub AddLinks { my $queues = shift; @@ -238,6 +317,26 @@ return $queues; } +sub AddAltLinks +{ + my $queues = shift; + + my @splitq = split(/\n/, $queues); + + for (my $i = 0; $i < $#splitq; $i++) { + if ($splitq[$i] =~ /^(\d+)\s+(\(\d+\,\s+\d+\/+\d+\)\s*)$/ ) { + $splitq[$i] = "url( -absolute => 1 ) . + "?state=perform&function=alt-confirm-delete-message-number" . + "&msgid=$1\">$1 $2"; + } + } + $queues = join("\n", @splitq); + + return $queues; +} + + #------------------------------------------------------------ # subroutine to showListLocalQueue #------------------------------------------------------------ @@ -262,6 +361,27 @@ return; } +sub showListLocalAltQueue ($) +{ + my ($q) = @_; + + + esmith::cgi::genHeaderNonCacheable ($q, \%conf, + "altqmail: ". $fm->localise('LIST_LOCAL_QUEUE')); + { + print $q->hr; + print $q->p($fm->localise('VIEW_TIME')),scalar localtime(time),"\n"; + my $LocalQueue = `/usr/bin/qmHandle -X -L`; + $LocalQueue =~ s//'/g; + + print $q->p ($q->pre ("$LocalQueue")); + } + + esmith::cgi::genFooter($fm); + return; +} + #------------------------------------------------------------ # subroutine to showListRemoteQueue @@ -288,6 +408,28 @@ return; } +sub showListRemoteAltQueue ($) +{ + my ($q) = @_; + esmith::cgi::genHeaderNonCacheable ($q, \%conf, + "altqmail: ". $fm->localise('LIST_REMOTE_QUEUE')); + + { + print $q->hr; + print $q->p($fm->localise('VIEW_TIME')),scalar localtime(time),"\n"; + + my $RemoteQueue = `/usr/bin/qmHandle -X -R`; + $RemoteQueue =~ s//'/g; + + $RemoteQueue = AddLinks($RemoteQueue); + print $q->p ($q->pre ("$RemoteQueue")); + } + + esmith::cgi::genFooter($fm); + return; +} + #------------------------------------------------------------ # subroutine to send ALARM to qmail @@ -312,6 +454,26 @@ return; } +sub Altresend ($) +{ + my ($q) = @_; + esmith::cgi::genHeaderNonCacheable ($q, \%conf, + "altqmail: ". $fm->localise('TRY_SEND_QUEUE')); + + { + print $q->hr; + print $q->p($fm->localise('SEND_QUEUE_AT')),scalar localtime(time),"\n"; + + my $res = `/usr/bin/qmHandle -X -a`; + + print $q->p ($q->pre ("$res")); + print $q->h3 ("Done."); + } + + esmith::cgi::genFooter($fm); + return; +} + #------------------------------------------------------------ # subroutine to showDeleteMessageNumber #------------------------------------------------------------ @@ -346,6 +508,38 @@ return; } +sub showDeleteAltMessageNumber ($) +{ + my ($q) = @_; + my $msgid = $q->param ('msgid'); + + if ($msgid =~ /^(\d+)$/) { + $msgid = $1; + } else { + $msgid = undef; + } + esmith::cgi::genHeaderNonCacheable ($q, \%conf, + "altqmail: ". $fm->localise('DELETE_MSG_TITLEB')); + + print $q->hr; + print $q->p($fm->localise('DELETE_MESSAGE')),"\n"; + my $Message = `/usr/bin/qmHandle -X -m$msgid|head -100`; + print $q->p ($q->pre ("$Message")); + + print $q->start_multipart_form(-method => 'POST', -action => $q->url (-absolute => 1)); + print $q->table ({border => 0, cellspacing => 0, cellpadding => 4}, + + esmith::cgi::genButtonRow ($q, + $q->submit (-name => 'action', -value => $fm->localise('Delete')))); + print $q->hidden (-name => 'state', -override => 1, -default => 'perform'); + print $q->hidden (-name => 'msgid', -override => 1, -default => "$msgid"); + print $q->hidden (-name => 'function', -override => 1, -default => 'delete-message-number'); + print $q->endform; + esmith::cgi::genFooter ($q); + return; +} + + sub deleteMessageNumber ($) { my ($q) = @_; @@ -360,7 +554,7 @@ my $Output = `/usr/bin/qmHandle -d$msgid`; esmith::cgi::genHeaderNonCacheable ($q, \%conf, - $fm->localise('QMH_TITLE')); + "altqmail: ". $fm->localise('QMH_TITLE')); print $q->hr; print $q->h3 ($fm->localise('DELETE'))," $msgid "; @@ -369,6 +563,29 @@ return; } +sub deleteAltMessageNumber ($) +{ + my ($q) = @_; + + my $msgid = $q->param ('msgid'); + + if ($msgid =~ /^(\d+)$/) { + $msgid = $1; + } else { + $msgid = undef; + } + my $Output = `/usr/bin/qmHandle -X -d$msgid`; + + esmith::cgi::genHeaderNonCacheable ($q, \%conf, + "altqmail: ". $fm->localise('QMH_TITLE')); + + print $q->hr; + print $q->h3 ($fm->localise('DELETE'))," $msgid "; + + esmith::cgi::genFooter ($q); + return; +} + __DATA__