Compare commits
	
		
			6 Commits
		
	
	
		
			11_0_0-96_
			...
			11_0_0-102
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 717d34a53d | |||
| bec39af49c | |||
| ff9c2fee8c | |||
| 21255abf46 | |||
| 8ada3f36e0 | |||
| ab42f986e8 | 
@@ -39,6 +39,7 @@ sub main {
 | 
			
		||||
sub do_update {
 | 
			
		||||
    my $c = shift;
 | 
			
		||||
    $c->app->log->info($c->log_req);
 | 
			
		||||
    $db = esmith::ConfigDB::UTF8->open() || die "Couldn't open config db";
 | 
			
		||||
    my $access      = $c->param('access');
 | 
			
		||||
    my $department  = $c->param('department');
 | 
			
		||||
    my $company     = $c->param('company');
 | 
			
		||||
@@ -84,7 +85,7 @@ sub get_ldap_base {
 | 
			
		||||
sub get_value {
 | 
			
		||||
    my $fm = shift;
 | 
			
		||||
    my $item = shift;
 | 
			
		||||
 | 
			
		||||
    $db = esmith::ConfigDB::UTF8->open() || die "Couldn't open config db";
 | 
			
		||||
    my $record = $db->get($item);
 | 
			
		||||
    if ($record) {
 | 
			
		||||
        return $record->value();
 | 
			
		||||
@@ -93,4 +94,4 @@ sub get_value {
 | 
			
		||||
        return '';
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
1;
 | 
			
		||||
1;
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -5,6 +5,12 @@ package SrvMngr::Controller::Localnetworks;
 | 
			
		||||
# description : Local networks
 | 
			
		||||
# navigation  : 6000 500
 | 
			
		||||
#
 | 
			
		||||
#$if_admin->get('/localnetworks')->to('localnetworks#main')->name('localnetworks');
 | 
			
		||||
#$if_admin->post('/localnetworks')->to('localnetworks#do_display')->name('localnetworks');
 | 
			
		||||
#$if_admin->post('/localnetworksa')->to('localnetworks#do_display')->name('localnetworksadd');
 | 
			
		||||
#$if_admin->post('/localnetworksb')->to('localnetworks#do_display')->name('localnetworksadd1');
 | 
			
		||||
#$if_admin->get('/localnetworksd')->to('localnetworks#do_display')->name('localnetworksdel');
 | 
			
		||||
#$if_admin->post('/localnetworkse')->to('localnetworks#do_display')->name('localnetworksdel1');
 | 
			
		||||
# routes : end
 | 
			
		||||
#----------------------------------------------------------------------
 | 
			
		||||
use strict;
 | 
			
		||||
@@ -53,6 +59,7 @@ sub do_display {
 | 
			
		||||
    $trt = 'ADD'  if ($rt eq 'localnetworksadd');
 | 
			
		||||
    $trt = 'ADD1' if ($rt eq 'localnetworksadd1');
 | 
			
		||||
    $trt = 'DEL1' if ($rt eq 'localnetworksdel1');
 | 
			
		||||
    $c->app->log->info("Localnetworks:trt:$trt");
 | 
			
		||||
    my %ln_datas = ();
 | 
			
		||||
    my $title    = $c->l('ln_LOCAL NETWORKS');
 | 
			
		||||
    my $modul    = '';
 | 
			
		||||
@@ -83,16 +90,21 @@ sub do_display {
 | 
			
		||||
    if ($trt eq 'DEL1') {
 | 
			
		||||
 | 
			
		||||
        #After Remove clicked on Delete network panel
 | 
			
		||||
	#$network_db   = esmith::NetworksDB::UTF8->open() || die("Failed to open Networkdb-1");
 | 
			
		||||
		#$network_db   = esmith::NetworksDB::UTF8->open() || die("Failed to open Networkdb-1");
 | 
			
		||||
        my $localnetwork = $c->param("localnetwork");
 | 
			
		||||
        my $delete_hosts = $c->param("deletehost") || "1";                                    #default to deleting them.
 | 
			
		||||
        my $rec = $network_db->get($localnetwork) || die("Failed to find network on db:$localnetwork");
 | 
			
		||||
 | 
			
		||||
        if ($rec and $rec->prop('type') eq 'localnetwork') {
 | 
			
		||||
            $ln_datas{localnetwork} = $localnetwork;
 | 
			
		||||
        }
 | 
			
		||||
        my %ret = remove_network($localnetwork, $delete_hosts);
 | 
			
		||||
	#$network_db = esmith::NetworksDB::UTF8->open() || die("Failed to open Networkdb-2");        #Refresh the network DB
 | 
			
		||||
        my $delete_hosts = $c->param("deletehost") || "1"; #default to deleting them.
 | 
			
		||||
        $c->app->log->info("Localnetworks:deleting $localnetwork");
 | 
			
		||||
        my ($rec,%ret);
 | 
			
		||||
        if ($rec = $network_db->get($localnetwork)){  #|| die("Failed to find network on db:$localnetwork");
 | 
			
		||||
			if ($rec and $rec->prop('type') eq 'localnetwork') {
 | 
			
		||||
				$ln_datas{localnetwork} = $localnetwork;
 | 
			
		||||
			}
 | 
			
		||||
			%ret = $c->remove_network($localnetwork, $delete_hosts);
 | 
			
		||||
		} else {
 | 
			
		||||
			$c->app->log->info("Local network: delete failed to find network in db: $localnetwork");
 | 
			
		||||
			%ret = ();
 | 
			
		||||
		}
 | 
			
		||||
		#$network_db = esmith::NetworksDB::UTF8->open() || die("Failed to open Networkdb-2");        #Refresh the network DB
 | 
			
		||||
        my @localnetworks;
 | 
			
		||||
 | 
			
		||||
        if ($network_db) {
 | 
			
		||||
@@ -100,8 +112,10 @@ sub do_display {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # Load up ln_datas with values need by template
 | 
			
		||||
        $ln_datas{subnet} = $rec->prop('Mask');
 | 
			
		||||
        $ln_datas{router} = $rec->prop('Router');
 | 
			
		||||
        if ($rec){
 | 
			
		||||
			$ln_datas{subnet} = $rec->prop('Mask');
 | 
			
		||||
			$ln_datas{router} = $rec->prop('Router');
 | 
			
		||||
		}
 | 
			
		||||
        $c->stash(ln_datas => \%ln_datas, localnetworks => \@localnetworks, ret => \%ret);
 | 
			
		||||
    } ## end if ($trt eq 'DEL1')
 | 
			
		||||
 | 
			
		||||
@@ -109,14 +123,20 @@ sub do_display {
 | 
			
		||||
 | 
			
		||||
        #Initial delete panel requiring confirmation
 | 
			
		||||
        my $localnetwork = $c->param("localnetwork") || '';
 | 
			
		||||
        my ($rec,%ret);
 | 
			
		||||
        $c->stash(localnetwork => $localnetwork);
 | 
			
		||||
        my $rec = $network_db->get($localnetwork) || die("Failed to get local network in db::$localnetwork");
 | 
			
		||||
        my $subnet = $rec->prop('Mask');
 | 
			
		||||
        $ln_datas{subnet} = $subnet;
 | 
			
		||||
        $ln_datas{router} = $rec->prop('Router');
 | 
			
		||||
        my $numhosts = hosts_on_network($localnetwork, $subnet);
 | 
			
		||||
        $ln_datas{localnetwork} = $localnetwork;
 | 
			
		||||
        $ln_datas{deletehosts} = $numhosts > 0 ? 1 : 0;
 | 
			
		||||
        if ($rec = $network_db->get($localnetwork)){
 | 
			
		||||
			my $subnet = $rec->prop('Mask');
 | 
			
		||||
			$ln_datas{subnet} = $subnet;
 | 
			
		||||
			$ln_datas{router} = $rec->prop('Router');
 | 
			
		||||
			my $numhosts =$c->hosts_on_network($localnetwork, $subnet);
 | 
			
		||||
			$ln_datas{localnetwork} = $localnetwork;
 | 
			
		||||
			$ln_datas{deletehosts} = $numhosts > 0 ? 1 : 0;
 | 
			
		||||
		} else {
 | 
			
		||||
			$c->app->log->info("Local network:Initial Failed to find network in Db: $localnetwork");
 | 
			
		||||
			$c->flash('error',$c->l('ln_Failed to find network in Db'));
 | 
			
		||||
			$trt = 'LIST';
 | 
			
		||||
		}
 | 
			
		||||
    } ## end if ($trt eq 'DEL')
 | 
			
		||||
 | 
			
		||||
    if ($trt eq 'LIST') {
 | 
			
		||||
@@ -136,6 +156,7 @@ sub do_display {
 | 
			
		||||
} ## end sub do_display
 | 
			
		||||
 | 
			
		||||
sub remove_network {
 | 
			
		||||
	my $c = shift;
 | 
			
		||||
    my $network      = shift;
 | 
			
		||||
    $network_db   = esmith::NetworksDB::UTF8->open();
 | 
			
		||||
    my $record       = $network_db->get($network);
 | 
			
		||||
@@ -152,7 +173,7 @@ sub remove_network {
 | 
			
		||||
 | 
			
		||||
        if (system("/sbin/e-smith/signal-event", "network-delete", $network) == 0) {
 | 
			
		||||
            if ($delete_hosts) {
 | 
			
		||||
                my @hosts_to_delete = hosts_on_network($network, $subnet);
 | 
			
		||||
                my @hosts_to_delete = $c->hosts_on_network($network, $subnet);
 | 
			
		||||
 | 
			
		||||
                foreach my $host (@hosts_to_delete) {
 | 
			
		||||
                    $host->delete;
 | 
			
		||||
@@ -169,6 +190,7 @@ sub remove_network {
 | 
			
		||||
} ## end sub remove_network
 | 
			
		||||
 | 
			
		||||
sub hosts_on_network {
 | 
			
		||||
	my $c = shift;
 | 
			
		||||
    my $network = shift;
 | 
			
		||||
    my $netmask = shift;
 | 
			
		||||
    die if not $network and $netmask;
 | 
			
		||||
@@ -191,17 +213,20 @@ sub hosts_on_network {
 | 
			
		||||
} ## end sub hosts_on_network
 | 
			
		||||
 | 
			
		||||
sub add_network {
 | 
			
		||||
    my ($fm)           = @_;
 | 
			
		||||
    my $networkAddress = $fm->param('networkAddress');
 | 
			
		||||
    my $networkMask    = $fm->param('networkMask');
 | 
			
		||||
    my $networkRouter  = $fm->param('networkRouter');
 | 
			
		||||
    my ($c)           = @_;
 | 
			
		||||
    my $networkAddress = $c->param('networkAddress');
 | 
			
		||||
    my $networkMask    = $c->param('networkMask');
 | 
			
		||||
    my $networkRouter  = $c->param('networkRouter');
 | 
			
		||||
    
 | 
			
		||||
    #Start by checking that the network does not already exist
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    #Validate Ips and subnet mask
 | 
			
		||||
    my $res = ip_number($fm, $networkAddress);
 | 
			
		||||
    my $res = ip_number($c, $networkAddress);
 | 
			
		||||
    return (ret => 'ln_INVALID_IP_ADDRESS', vars => "Network Address $res") unless $res eq 'OK';
 | 
			
		||||
    $res = subnet_mask($networkMask);
 | 
			
		||||
    return (ret => 'ln_INVALID_SUBNET_MASK', vars => "$networkMask") unless $res eq 'OK';
 | 
			
		||||
    $res = ip_number($fm, $networkRouter);
 | 
			
		||||
    $res = ip_number($c, $networkRouter);
 | 
			
		||||
    return (ret => 'ln_INVALID_IP_ADDRESS', vars => "Routeur Address $res") unless $res eq 'OK';
 | 
			
		||||
 | 
			
		||||
    # we transform bit mask to regular mask
 | 
			
		||||
@@ -234,19 +259,25 @@ sub add_network {
 | 
			
		||||
    if ($network_db->get($network)) {
 | 
			
		||||
        return (ret => 'ln_NETWORK_ALREADY_ADDED', vars => "$network,$networkMask,$networkRouter");
 | 
			
		||||
    }
 | 
			
		||||
    $network_db->new_record(
 | 
			
		||||
    $res = $network_db->new_record(
 | 
			
		||||
        $network,
 | 
			
		||||
        {   Mask   => $networkMask,
 | 
			
		||||
            Router => $networkRouter,
 | 
			
		||||
            type   => 'network',
 | 
			
		||||
        }
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    # Untaint $network before use in system()
 | 
			
		||||
    $network =~ /(.+)/;
 | 
			
		||||
    $network = $1;
 | 
			
		||||
    system("/sbin/e-smith/signal-event", "network-create", $network) == 0
 | 
			
		||||
        or (return (ret => 'ln_ERROR_CREATING_NETWORK', vars => "$network,$networkMask,$networkRouter"));
 | 
			
		||||
    if (! $res) {
 | 
			
		||||
		#Record already existed
 | 
			
		||||
		$c->app->log->info("Local Network:Network already exists:$network");
 | 
			
		||||
		#return success message 
 | 
			
		||||
	} else {
 | 
			
		||||
		#Only call underlying batch if new record created
 | 
			
		||||
		# Untaint $network before use in system()
 | 
			
		||||
		$network =~ /(.+)/;
 | 
			
		||||
		$network = $1;
 | 
			
		||||
		system("/sbin/e-smith/signal-event", "network-create", $network) == 0
 | 
			
		||||
			or (return (ret => 'ln_ERROR_CREATING_NETWORK', vars => "$network,$networkMask,$networkRouter"));
 | 
			
		||||
	}
 | 
			
		||||
    my ($totalHosts, $firstAddr, $lastAddr) = esmith::util::computeHostRange($network, $networkMask);
 | 
			
		||||
    my $msg;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,5 @@
 | 
			
		||||
 | 
			
		||||
'mai_FORM_TITLE' => 'E-mail settings',
 | 
			
		||||
'E-mail' => 'E-mail',
 | 
			
		||||
'mai_E-Mail' => 'E-mail',
 | 
			
		||||
'mai_SUCCESS' => 'The new e-mail settings have been saved.',
 | 
			
		||||
'mai_NEVER' => 'not at all',
 | 
			
		||||
'mai_EVERY5MIN' => 'Every 5 minutes',
 | 
			
		||||
@@ -20,7 +19,7 @@ for dialup connections), or multi-drop (for dialup connections if
 | 
			
		||||
ETRN is not supported by your Internet provider). Note that
 | 
			
		||||
multi-drop mode is the only option available when the server is
 | 
			
		||||
configured in private server and gateway mode.',
 | 
			
		||||
'mai_LABEL_DELEGATE' => 'Address of internal mail server',
 | 
			
		||||
'mai_LABEL_DELEGATE' => 'IP Address of internal mail server',
 | 
			
		||||
'mai_TITLE_DELEGATE' => 'Delegate mail servers',
 | 
			
		||||
'mai_DESC_DELEGATE' => 'Your server includes a complete, full-featured e-mail server. However,
 | 
			
		||||
if for some reason you wish to delegate e-mail processing to
 | 
			
		||||
@@ -79,10 +78,9 @@ destination (recommended in most cases) or can deliver them via
 | 
			
		||||
your Internet provider\'s SMTP server (recommended if you have an
 | 
			
		||||
unreliable Internet connection or are using a residential Internet
 | 
			
		||||
service). If using your Internet provider\'s SMTP server, specify
 | 
			
		||||
its hostname or IP address below. Otherwise leave this field
 | 
			
		||||
blank.',
 | 
			
		||||
'mai_INVALID_SMARTHOST' => 'The smarthost name you entered is not a valid internet domain name
 | 
			
		||||
and is not blank',
 | 
			
		||||
its hostname or IP address below. Otherwise leave this field blank.',
 | 
			
		||||
'mai_INVALID_SMARTHOST' => 'The smarthost name you entered is not a valid internet domain name and is not blank',
 | 
			
		||||
'mai_INVALID_DELEGATE' => 'The delegate host name you entered is not a valid IP Address and is not blank',
 | 
			
		||||
'mai_DESC_POP_ACCESS_CONTROL' => 'You can control POP3 server access. The setting \'Allow access
 | 
			
		||||
only from local networks\' allows POP3 access only from your
 | 
			
		||||
local network(s). The POP3S setting can be used to provide
 | 
			
		||||
@@ -150,5 +148,9 @@ The value for this tag can be defined below.',
 | 
			
		||||
'mai_LABEL_SMARTHOST_SMTPAUTH_STATUS' => 'SMTP Authentication for Internet provider',
 | 
			
		||||
'mai_LABEL_SMARTHOST_SMTPAUTH_USERID' => 'Mail server user id',
 | 
			
		||||
'mai_LABEL_SMARTHOST_SMTPAUTH_PASSWD' => 'Mail server password',
 | 
			
		||||
'mai_VALIDATION_SMTPAUTH_NONBLANK' => 'This field cannot be left blank if SMTP Authentication is
 | 
			
		||||
'mai_VALIDATION_SMTPAUTH_NONBLANK' => 'The user id and password fields cannot be left blank if SMTP Authentication is
 | 
			
		||||
enabled.',
 | 
			
		||||
'mai_ACC_panel_action_was_successful' => 'Email access settings saved sucessfully',
 | 
			
		||||
'mai_DEL_panel_action_was_successful' => 'Email delivery settings saved sucessfully',
 | 
			
		||||
'mai_FIL_panel_action_was_successful' => 'Email filtering settings saved sucessfully',
 | 
			
		||||
'mai_REC_panel_action_was_successful' => 'Email receive settings saved sucessfully',
 | 
			
		||||
@@ -0,0 +1,14 @@
 | 
			
		||||
/*
 | 
			
		||||
Generated by: SM2Gen version:0.9(20Jan2025) Chameleon version:4.5.4 On Python:3.12.3 at 2025-06-29 08:53:20
 | 
			
		||||
*/
 | 
			
		||||
.Emailsettings-panel {}
 | 
			
		||||
.name {}
 | 
			
		||||
.rout {}
 | 
			
		||||
.name {}
 | 
			
		||||
.rout {}
 | 
			
		||||
.name {}
 | 
			
		||||
.rout {}
 | 
			
		||||
.name {}
 | 
			
		||||
.rout {}
 | 
			
		||||
.name {}
 | 
			
		||||
.rout {}
 | 
			
		||||
@@ -280,4 +280,14 @@ background-color: #e8f3e1;
 | 
			
		||||
    /* Or specify the desired color */
 | 
			
		||||
     text-decoration: none;
 | 
			
		||||
    /* Or any other style you want to reset */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#busy-indicator {
 | 
			
		||||
	display: none;
 | 
			
		||||
	margin-top: 10px;
 | 
			
		||||
	font-weight: bold;
 | 
			
		||||
	color: red;
 | 
			
		||||
}
 | 
			
		||||
.busy {
 | 
			
		||||
	cursor: wait; /* Change the cursor to a 'wait' cursor */
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,5 @@
 | 
			
		||||
//
 | 
			
		||||
//Generated by: SM2Gen version:0.9(20Jan2025) Chameleon version:4.5.4 On Python:3.12.3 at 2025-06-29 08:53:20
 | 
			
		||||
//
 | 
			
		||||
$(document).ready(function() {
 | 
			
		||||
});
 | 
			
		||||
@@ -28,4 +28,16 @@ $(document).ready(function() {
 | 
			
		||||
        var iconSrc = inputType === 'password' ? 'images/visible.png' : 'images/visible-slash.png';
 | 
			
		||||
        $(this).attr('src', iconSrc);
 | 
			
		||||
    });
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
// and busy cursor 
 | 
			
		||||
$(document).ready(function() {
 | 
			
		||||
	// Handle form submission for any form
 | 
			
		||||
	$('form').on('submit', function(event) {
 | 
			
		||||
	  // Disable all submit buttons and update their labels
 | 
			
		||||
	  $(this).find('button[type="submit"]').prop('disabled', true).text('Please wait...');
 | 
			
		||||
	  $(this).find('input[type="submit"]').prop('disabled', true).val('Please wait...');
 | 
			
		||||
	  // Add busy cursor
 | 
			
		||||
	  $('body').addClass('busy');
 | 
			
		||||
	});
 | 
			
		||||
});
 | 
			
		||||
@@ -1,7 +1,5 @@
 | 
			
		||||
% layout 'default', title => 'Sme server 2 - datetime';
 | 
			
		||||
% content_for 'module' => begin
 | 
			
		||||
	%= javascript 'js/datetime.js'
 | 
			
		||||
	%= stylesheet 'css/datetime.css'
 | 
			
		||||
	<div id='module' class='module datetime-panel'>
 | 
			
		||||
		% if (config->{debug} == 1) {
 | 
			
		||||
		<p>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,57 +0,0 @@
 | 
			
		||||
% layout 'default', title => "Sme server 2 - emailaccess";
 | 
			
		||||
 | 
			
		||||
% content_for 'module' => begin
 | 
			
		||||
<div id='module' class='module emailaccess-panel'>
 | 
			
		||||
 | 
			
		||||
    % if (config->{debug} == 1) {
 | 
			
		||||
	<p>
 | 
			
		||||
	%= dumper $c->current_route
 | 
			
		||||
	%= dumper $mai_datas
 | 
			
		||||
	</p>
 | 
			
		||||
    % }
 | 
			
		||||
    
 | 
			
		||||
    % if ( stash 'error' ) {
 | 
			
		||||
    	<br><div class=sme-error>
 | 
			
		||||
    	%= $c->render_to_string(inline => stash 'error') 
 | 
			
		||||
	</div>
 | 
			
		||||
    %}
 | 
			
		||||
 | 
			
		||||
    <h1><%= $title%></h1>
 | 
			
		||||
 | 
			
		||||
    %= form_for '/emailsettingd' => (method => 'POST') => begin
 | 
			
		||||
 | 
			
		||||
	%=l 'mai_DESC_POP_ACCESS_CONTROL'
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_POP_ACCESS_CONTROL'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'POPAccess' => $c->get_current_pop3_access() unless param 'POPAccess';
 | 
			
		||||
	%= select_field 'POPAccess' => $c->get_pop_opt(), class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	%=l 'mai_DESC_IMAP_ACCESS_CONTROL'
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_IMAP_ACCESS_CONTROL'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'IMAPAccess' => $c->get_current_imap_access() unless param 'IMAPAccess';
 | 
			
		||||
	%= select_field 'IMAPAccess' => $c->get_imap_opt(), class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	%=l 'mai_DESC_WEBMAIL'
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_WEBMAIL'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'WebMail' => $c->get_current_webmail_status() unless param 'WebMail';
 | 
			
		||||
	%= select_field 'WebMail' => $c->get_webmail_opt(), class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
    % 	my $btn = l('SAVE');
 | 
			
		||||
	%= submit_button "$btn", class => 'action'
 | 
			
		||||
 | 
			
		||||
	%= hidden_field 'trt' => 'ACC'
 | 
			
		||||
    % end    
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
%end
 | 
			
		||||
@@ -1,92 +0,0 @@
 | 
			
		||||
% layout 'default', title => "Sme server 2 - emaildeliver";
 | 
			
		||||
 | 
			
		||||
% content_for 'module' => begin
 | 
			
		||||
<div id='module' class='module emaildeliver-panel'>
 | 
			
		||||
 | 
			
		||||
    % if (config->{debug} == 1) {
 | 
			
		||||
	<p>
 | 
			
		||||
	%= dumper $c->current_route
 | 
			
		||||
	%= dumper $mai_datas
 | 
			
		||||
	</p>
 | 
			
		||||
    % }
 | 
			
		||||
    
 | 
			
		||||
    % if ( stash 'error' ) {
 | 
			
		||||
    	<br><div class=sme-error>
 | 
			
		||||
    	%= $c->render_to_string(inline => stash 'error') 
 | 
			
		||||
	</div>
 | 
			
		||||
    %}
 | 
			
		||||
 | 
			
		||||
    <h1><%= $title%></h1>
 | 
			
		||||
 | 
			
		||||
    %= form_for '/emailsettingd' => (method => 'POST') => begin
 | 
			
		||||
 | 
			
		||||
	<h2>
 | 
			
		||||
	%=l 'mai_TITLE_UNKNOWN'
 | 
			
		||||
	</h2>
 | 
			
		||||
 | 
			
		||||
	%=l 'mai_DESC_UNKNOWN'
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_UNKNOWN'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'EmailUnknownUser' => $mai_datas->{emailunknownuser} unless param 'EmailUnknownUser';
 | 
			
		||||
	%= select_field 'EmailUnknownUser' => $c->get_emailunknownuser_opt(), class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<!--<hr class='menubar' />-->
 | 
			
		||||
	<h2>
 | 
			
		||||
	%=l 'mai_TITLE_DELEGATE'
 | 
			
		||||
	</h2>
 | 
			
		||||
 | 
			
		||||
	%=l 'mai_DESC_DELEGATE'
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_DELEGATE'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'DelegateMailServer' => $mai_datas->{delegatemailserver} unless param 'DelegateMailServer';
 | 
			
		||||
	%= text_field 'DelegateMailServer', class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<!--<hr class='sectionbar' />-->
 | 
			
		||||
	<h2>
 | 
			
		||||
	%=l 'mai_TITLE_SMARTHOST'
 | 
			
		||||
	</h2>
 | 
			
		||||
 | 
			
		||||
	%=l 'mai_DESC_SMARTHOST'
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_SMARTHOST'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'SMTPSmartHost' => $mai_datas->{smtpsmarthost} unless param 'SMTPSmartHost';
 | 
			
		||||
	%= text_field 'SMTPSmartHost', class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_SMARTHOST_SMTPAUTH_STATUS'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'SMTPAUTHPROXY_status' => $mai_datas->{smtpauthproxystatus} unless param 'SMTPAUTHPROXY_status';
 | 
			
		||||
	%= select_field 'SMTPAUTHPROXY_status' => [[(l 'DISABLED') => 'disabled'], [(l 'ENABLED') => 'enabled']], class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_SMARTHOST_SMTPAUTH_USERID'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'SMTPAUTHPROXY_Userid' => $mai_datas->{smtpauthproxyuserid} unless param 'SMTPAUTHPROXY_Userid';
 | 
			
		||||
	%= text_field 'SMTPAUTHPROXY_Userid', class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_SMARTHOST_SMTPAUTH_PASSWD'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'SMTPAUTHPROXY_Passwd' => $mai_datas->{smtpauthproxypassword} unless param 'SMTPAUTHPROXY_Passwd';
 | 
			
		||||
	%= password_field 'SMTPAUTHPROXY_Passwd', class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
    % 	my $btn = l('SAVE');
 | 
			
		||||
	%= submit_button "$btn", class => 'action'
 | 
			
		||||
 | 
			
		||||
	%= hidden_field 'trt' => 'DEL'
 | 
			
		||||
    % end    
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
%end
 | 
			
		||||
@@ -1,101 +0,0 @@
 | 
			
		||||
% layout 'default', title => "Sme server 2 - emailfilter";
 | 
			
		||||
 | 
			
		||||
% content_for 'module' => begin
 | 
			
		||||
<div id='module' class='module emailfilter-panel'>
 | 
			
		||||
 | 
			
		||||
    % if (config->{debug} == 1) {
 | 
			
		||||
	<p>
 | 
			
		||||
	%= dumper $c->current_route
 | 
			
		||||
	%= dumper $mai_datas
 | 
			
		||||
	</p>
 | 
			
		||||
    % }
 | 
			
		||||
 | 
			
		||||
    % if ( stash 'error' ) {
 | 
			
		||||
    	<br><div class=sme-error>
 | 
			
		||||
    	%= $c->render_to_string(inline => stash 'error') 
 | 
			
		||||
	</div>
 | 
			
		||||
    %}
 | 
			
		||||
 | 
			
		||||
    <h1><%= $title%></h1>
 | 
			
		||||
 | 
			
		||||
    %= form_for '/emailsettingd' => (method => 'POST') => begin
 | 
			
		||||
 | 
			
		||||
	%=l 'mai_DESC_VIRUS_SCAN'
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_VIRUS_SCAN'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'VirusStatus' => $mai_datas->{virusstatus} unless param 'VirusStatus';
 | 
			
		||||
	%= select_field 'VirusStatus' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => 'input'
 | 
			
		||||
	</span><br></p>
 | 
			
		||||
 | 
			
		||||
	%=l 'mai_DESC_SPAM_SCAN'
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_SPAM_SCAN'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'Spamstatus' => $mai_datas->{spamstatus} unless param 'Spamstatus';
 | 
			
		||||
	%= select_field 'Spamstatus' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_SPAM_SENSITIVITY'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'SpamSensitivity' => $mai_datas->{spamsensitivity} unless param 'SpamSensitivity';
 | 
			
		||||
	%= select_field 'SpamSensitivity' => $c->get_spam_sensitivity_opt(), class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_SPAM_TAGLEVEL'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'SpamTagLevel' => $mai_datas->{spamtaglevel} unless param 'SpamTagLevel';
 | 
			
		||||
	%= select_field 'SpamTagLevel' => $c->get_spam_level_options(), class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_SPAM_REJECTLEVEL'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'SpamRejectLevel' => $mai_datas->{spamrejectlevel} unless param 'SpamRejectLevel';
 | 
			
		||||
	%= select_field 'SpamRejectLevel' => $c->get_spam_level_options(), class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_SORTSPAM'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'SpamSortSpam' => $mai_datas->{spamsortspam} unless param 'SpamSortSpam';
 | 
			
		||||
	%= select_field 'SpamSortSpam' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	%=l 'mai_DESC_SPAM_SUBJECT'
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_SPAM_SUBJECTTAG'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'SpamSubjectTag' => $mai_datas->{spamsubjecttag} unless param 'SpamSubjectTag';
 | 
			
		||||
	%= select_field 'SpamSubjectTag' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_SPAM_SUBJECT'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'SpamSubject' => $mai_datas->{spamsubject} unless param 'SpamSubject';
 | 
			
		||||
	%= text_field 'SpamSubject' => class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	%=l 'mai_DESC_BLOCK_EXECUTABLE_CONTENT'
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_CONTENT_TO_BLOCK'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'BlockExecutableContent' => $c->get_patterns_current_opt() unless param 'BlockExecutableContent';
 | 
			
		||||
	%= select_field 'BlockExecutableContent' => $c->get_patterns_opt(), class => 'input', multiple => "1"
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
    % 	my $btn = l('SAVE');
 | 
			
		||||
	%= submit_button "$btn", class => 'action'
 | 
			
		||||
 | 
			
		||||
	%= hidden_field 'trt' => 'FIL'
 | 
			
		||||
    % end
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
%end
 | 
			
		||||
@@ -1,167 +0,0 @@
 | 
			
		||||
% layout 'default', title => "Sme server 2 - emailreceive";
 | 
			
		||||
 | 
			
		||||
% content_for 'module' => begin
 | 
			
		||||
 | 
			
		||||
% use constant FALSE => 0;
 | 
			
		||||
% use constant TRUE  => 1;
 | 
			
		||||
 | 
			
		||||
<div id='module' class='module emailreceive-panel'>
 | 
			
		||||
 | 
			
		||||
    % if (config->{debug} == 1) {
 | 
			
		||||
	<p>
 | 
			
		||||
	%= dumper $c->current_route
 | 
			
		||||
	%= dumper $mai_datas
 | 
			
		||||
	%= dumper $c->param('SMTPAuth')
 | 
			
		||||
	</p>
 | 
			
		||||
    % }
 | 
			
		||||
 | 
			
		||||
    % if ( stash 'error' ) {
 | 
			
		||||
    	<br><div class=sme-error>
 | 
			
		||||
    	%= $c->render_to_string(inline => stash 'error') 
 | 
			
		||||
	</div>
 | 
			
		||||
    %}
 | 
			
		||||
    
 | 
			
		||||
    <h1><%= $title%></h1>
 | 
			
		||||
 | 
			
		||||
    %= form_for '/emailsettingd' => (method => 'POST') => begin
 | 
			
		||||
 | 
			
		||||
	%=l 'mai_DESC_MODE'
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_MODE'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'FetchmailMethod' => $mai_datas->{fetchmailmethod} unless param 'FetchmailMethod';
 | 
			
		||||
<!--
 | 
			
		||||
	<pre>
 | 
			
		||||
		%= dumper $mai_datas->{fetchmailmethod}
 | 
			
		||||
		%= dumper $c->get_retrieval_opt()
 | 
			
		||||
		%= param 'FetchmailMethod'
 | 
			
		||||
	</pre>
 | 
			
		||||
-->
 | 
			
		||||
	%= select_field 'FetchmailMethod' => $c->get_retrieval_opt(), class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	%#=l 'mai_DESC_SMTP_AUTH_CONTROL'
 | 
			
		||||
	<br />
 | 
			
		||||
	%= l "SMTP port (25) main purpose is to receive emails from another server, STARTTLS is always offered, but auth if offered is only if STARTTLS is also used by client."
 | 
			
		||||
	<br />
 | 
			
		||||
	%= l "SMTPS port (465) will require implicit SSL/TLS then authenticate to send."
 | 
			
		||||
	<br />
 | 
			
		||||
	%= l "SMTP Submission port (587) will require STARTTLS, then authenticate to send."
 | 
			
		||||
	<br />
 | 
			
		||||
 | 
			
		||||
	% my $smtp_mesg=l('SMTP port %u allow client to authenticate:');
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
		%= sprintf($smtp_mesg,$c->get_db_prop('qpsmtpd','TCPPort',25)); 
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
    	% param 'SMTPAuth' => $c->get_current_smtp_auth( FALSE ) unless param 'SMTPAuth';
 | 
			
		||||
<!--
 | 
			
		||||
	<pre>
 | 
			
		||||
		%= dumper $c->get_smtp_auth_opt()
 | 
			
		||||
		%= dumper $c->get_current_smtp_auth(FALSE)
 | 
			
		||||
		%= dumper $c->get_db_prop("qpsmtpd","Authentication")
 | 
			
		||||
		%= param 'SMTPAuth'
 | 
			
		||||
	</pre>
 | 
			
		||||
-->
 | 
			
		||||
		%= select_field 'SMTPAuth' => $c->get_smtp_auth_opt(), class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	% my $smtp_mesg=l('SMTPS SSL/TLS auth: port %u status:');
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
		%= sprintf($smtp_mesg,$c->get_db_prop('sqpsmtpd','TCPPort',465)); 
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
		% param 'sSMTPAuth' => $c->get_current_smtp_ssl_auth(FALSE,'s', TRUE) unless param 'sSMTPAuth';
 | 
			
		||||
	
 | 
			
		||||
		%= select_field 'sSMTPAuth' => $c->get_smtp_ssl_auth_opt(), class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	%my $smtp_mesg=l('Submission port %u status:');
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
		%= sprintf($smtp_mesg,$c->get_db_prop('uqpsmtpd','TCPPort',587)); 
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
    	% param 'uSMTPAuth' => $c->get_current_smtp_ssl_auth(FALSE,'u', TRUE) unless param 'uSMTPAuth';
 | 
			
		||||
<!--
 | 
			
		||||
	<pre>
 | 
			
		||||
		%= dumper $c->get_smtp_ssl_auth_opt()
 | 
			
		||||
		%= dumper $c->get_current_smtp_ssl_auth(FALSE,'s', TRUE)
 | 
			
		||||
		%= dumper $c->get_current_smtp_ssl_auth(FALSE,'u', TRUE)
 | 
			
		||||
		%= dumper $c->get_db_prop("uqpsmtpd","access")
 | 
			
		||||
		%= param 'uSMTPAuth'
 | 
			
		||||
	</pre>
 | 
			
		||||
-->
 | 
			
		||||
	%= select_field 'uSMTPAuth' => $c->get_smtp_ssl_auth_opt(), class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<!--<hr class="sectionbar" />-->
 | 
			
		||||
	<h2>
 | 
			
		||||
	%=l 'mai_TITLE_SECONDARY'
 | 
			
		||||
	</h2>
 | 
			
		||||
 | 
			
		||||
	%=l 'mai_DESC_SECONDARY'
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_SECONDARY'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'SecondaryMailServer' => $mai_datas->{secondarymailserver} unless param 'SecondaryMailServer';
 | 
			
		||||
	%= text_field 'SecondaryMailServer', class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	%=l 'mai_DESC_FETCH_PERIOD'
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_FETCH_PERIOD'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'FreqOffice' => $mai_datas->{freqoffice} unless param 'FreqOffice';
 | 
			
		||||
	%= select_field 'FreqOffice' => $c->fetchmail_freq(), class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_FETCH_PERIOD_NIGHTS'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'FreqOutside' => $mai_datas->{freqoutside} unless param 'FreqOutside';
 | 
			
		||||
	%= select_field 'FreqOutside' => $c->fetchmail_freq(), class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_FETCH_PERIOD_WEEKENDS'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'FreqWeekend' => $mai_datas->{freqweekend} unless param 'FreqWeekend';
 | 
			
		||||
	%= select_field 'FreqWeekend' => $c->fetchmail_freq(), class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_POP_ACCOUNT'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'SecondaryMailAccount' => $mai_datas->{secondarymailaccount} unless param 'SecondaryMailAccount';
 | 
			
		||||
	%= text_field 'SecondaryMailAccount', class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_POP_PASS'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'SecondaryMailPassword' => $mai_datas->{secondarymailpassword} unless param 'SecondaryMailPassword';
 | 
			
		||||
	%= password_field 'SecondaryMailPassword', class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_SORT_METHOD'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'SpecifyHeader' => $mai_datas->{specifyheader} unless param 'SpecifyHeader';
 | 
			
		||||
	%= select_field 'SpecifyHeader' => [[(l 'mai_DEFAULT') => 'off'], [(l 'mai_SPECIFY_BELOW') => 'on']], class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_SORT_HEADER'
 | 
			
		||||
	</span><span class=input>
 | 
			
		||||
	% param 'SecondaryMailEnvelope' => $mai_datas->{secondarymailenvelope} unless param 'SecondaryMailEnvelope';
 | 
			
		||||
	%= text_field 'SecondaryMailEnvelope', class => 'input'
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
    % 	my $btn = l('SAVE');
 | 
			
		||||
	%= submit_button "$btn", class => 'action'
 | 
			
		||||
 | 
			
		||||
	%= hidden_field 'trt' => 'REC'
 | 
			
		||||
    % end    
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
%end
 | 
			
		||||
@@ -1,155 +1,70 @@
 | 
			
		||||
% layout 'default', title => "Sme server 2 - emailsettings";
 | 
			
		||||
 | 
			
		||||
%#
 | 
			
		||||
%# Generated by SM2Gen version:0.9(20Jan2025) Chameleon version:4.5.4 On Python:3.12.3 at 2025-06-29 08:53:20 
 | 
			
		||||
%#
 | 
			
		||||
% layout 'default', title => "Sme server 2 - E-Mail", share_dir => './';
 | 
			
		||||
%# css specific to this panel:
 | 
			
		||||
% content_for 'module' => begin
 | 
			
		||||
 | 
			
		||||
% use constant FALSE => 0;
 | 
			
		||||
% use constant TRUE  => 1;
 | 
			
		||||
 | 
			
		||||
<div id='module' class='module emailsettings-panel'>
 | 
			
		||||
<div id="module" class="module Emailsettings-panel">
 | 
			
		||||
 | 
			
		||||
    % if (config->{debug} == TRUE) {
 | 
			
		||||
	<p>
 | 
			
		||||
	%= dumper $c->current_route
 | 
			
		||||
	%= dumper $mai_datas
 | 
			
		||||
	</p>
 | 
			
		||||
    % if (config->{debug} == 1) {
 | 
			
		||||
	<pre>
 | 
			
		||||
		%= dumper $c->current_route
 | 
			
		||||
		%= dumper $mai_data->{trt}
 | 
			
		||||
	</pre>
 | 
			
		||||
    % }
 | 
			
		||||
    
 | 
			
		||||
    <h1><%=$title%></h1>
 | 
			
		||||
 | 
			
		||||
    % if ( stash('modul')) {
 | 
			
		||||
	%= $c->render_to_string(inline => stash('modul') );
 | 
			
		||||
    % }
 | 
			
		||||
 | 
			
		||||
    % if ( stash 'error' ) {
 | 
			
		||||
    	<br><div class=sme-error>
 | 
			
		||||
    	%= $c->render_to_string(inline => stash 'error') 
 | 
			
		||||
	</div>
 | 
			
		||||
    %}
 | 
			
		||||
   	%if ($c->stash('first')) {
 | 
			
		||||
	    <br><p>
 | 
			
		||||
		%=$c->render_to_string(inline =>$c->l($c->stash('first')))
 | 
			
		||||
		</p>
 | 
			
		||||
 | 
			
		||||
    <h1><%= $title%></h1>
 | 
			
		||||
	%} elsif ($c->stash('success')) {
 | 
			
		||||
		<div class='success '>
 | 
			
		||||
				%= $c->l($c->stash('success'));
 | 
			
		||||
		</div>
 | 
			
		||||
		<br />
 | 
			
		||||
 | 
			
		||||
    %= form_for 'emailsettings' => (method => 'POST') => begin
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_POP_ACCESS_CONTROL'
 | 
			
		||||
	</span><span class=data2>
 | 
			
		||||
	%= $c->get_current_pop3_access( TRUE )
 | 
			
		||||
	</span></p>
 | 
			
		||||
	%} elsif ($c->stash('error')) { 
 | 
			
		||||
	   <div class='sme-error'>
 | 
			
		||||
				%= $c->l($c->stash('error'));
 | 
			
		||||
    	</div>
 | 
			
		||||
		<br />
 | 
			
		||||
	%}
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_IMAP_ACCESS_CONTROL'
 | 
			
		||||
	</span><span class=data2>
 | 
			
		||||
	%= $c->get_current_imap_access( TRUE )
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_WEBMAIL'
 | 
			
		||||
	</span><span class=data2>
 | 
			
		||||
	%= $c->get_current_webmail_status( TRUE )
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
    % 	my $btn = l('mai_DESC_STATE_ACCESS_BUTTON');
 | 
			
		||||
    <div class='center'>
 | 
			
		||||
	%= submit_button "$btn", class => 'action'
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
	%= hidden_field 'trt' => 'ACC'
 | 
			
		||||
    % end   
 | 
			
		||||
    <br> 
 | 
			
		||||
 | 
			
		||||
    <!--<hr class="sectionbar" />-->
 | 
			
		||||
    
 | 
			
		||||
    %= form_for 'emailsettings' => (method => 'POST') => begin
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_VIRUS_SCAN'
 | 
			
		||||
	</span><span class=data2>
 | 
			
		||||
	%= $c->get_virus_status(TRUE)
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_SPAM_SCAN'
 | 
			
		||||
	</span><span class=data2>
 | 
			
		||||
	%= $c->get_spam_status(TRUE)
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_BLOCK_EXECUTABLE_CONTENT'
 | 
			
		||||
	</span><span class=data2>
 | 
			
		||||
	%= $c->get_patterns_status(TRUE)
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
    % 	my $btn = l('mai_DESC_STATE_FILTERING_BUTTON');
 | 
			
		||||
    <div class='center'>
 | 
			
		||||
	%= submit_button "$btn", class => 'action'
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
	%= hidden_field 'trt' => 'FIL'
 | 
			
		||||
    % end  
 | 
			
		||||
    <br>  
 | 
			
		||||
 | 
			
		||||
    <!--<hr class="sectionbar" />-->
 | 
			
		||||
 | 
			
		||||
    %= form_for 'emailsettings' => (method => 'POST') => begin
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_MODE'
 | 
			
		||||
	</span><span class=data2>
 | 
			
		||||
	%= $mai_datas->{fetchmailmethod}
 | 
			
		||||
	</span></p>
 | 
			
		||||
	%#Routing to partials according to trt parameter.
 | 
			
		||||
	%#This ought to be cascading if/then/elsif, but is easier to just stack the if/then's rather like a case statement'
 | 
			
		||||
	
 | 
			
		||||
	% if ($mai_data->{trt} eq "FRONT") {
 | 
			
		||||
		%= include 'partials/_mai_FRONT'
 | 
			
		||||
	%}
 | 
			
		||||
	
 | 
			
		||||
	% if ($mai_data->{trt} eq "ACC") {
 | 
			
		||||
		%= include 'partials/_mai_ACC'
 | 
			
		||||
	%}
 | 
			
		||||
	
 | 
			
		||||
	% if ($mai_data->{trt} eq "FIL") {
 | 
			
		||||
		%= include 'partials/_mai_FIL'
 | 
			
		||||
	%}
 | 
			
		||||
	
 | 
			
		||||
	% if ($mai_data->{trt} eq "REC") {
 | 
			
		||||
		%= include 'partials/_mai_REC'
 | 
			
		||||
	%}
 | 
			
		||||
	
 | 
			
		||||
	% if ($mai_data->{trt} eq "DEL") {
 | 
			
		||||
		%= include 'partials/_mai_DEL'
 | 
			
		||||
	%}
 | 
			
		||||
	
 | 
			
		||||
	% my $smtp_mesg;
 | 
			
		||||
 | 
			
		||||
	% $smtp_mesg=l('SMTP port %u allow client to authenticate:');
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
		%= sprintf($smtp_mesg,$c->get_db_prop('qpsmtpd','TCPPort',25)); 
 | 
			
		||||
	</span><span class=data2>
 | 
			
		||||
	%= $c->get_current_smtp_auth( TRUE )
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	% $smtp_mesg=l('SMTPS SSL/TLS auth: port %u status:');
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
		%= sprintf($smtp_mesg,$c->get_db_prop('sqpsmtpd','TCPPort',465)); 
 | 
			
		||||
	</span><span class=data2>
 | 
			
		||||
	%= $c->get_current_smtp_ssl_auth( TRUE, 's', FALSE )
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	% $smtp_mesg=l 'Submission port %u status:';
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
		%= sprintf($smtp_mesg,$c->get_db_prop('uqpsmtpd','TCPPort',587)); 
 | 
			
		||||
	</span><span class=data2>
 | 
			
		||||
	%= $c->get_current_smtp_ssl_auth( TRUE,'u', FALSE )
 | 
			
		||||
	</span></p>
 | 
			
		||||
	<br />
 | 
			
		||||
 | 
			
		||||
    % my $btn = l('mai_DESC_STATE_RECEPTION_BUTTON');
 | 
			
		||||
    <div class='center'>
 | 
			
		||||
	%= submit_button "$btn", class => 'action'
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
	%= hidden_field 'trt' => 'REC'
 | 
			
		||||
    % end    
 | 
			
		||||
    <br>
 | 
			
		||||
 | 
			
		||||
    <!--<hr class="sectionbar" />-->
 | 
			
		||||
 | 
			
		||||
    %= form_for 'emailsettings' => (method => 'POST') => begin
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_UNKNOWN'
 | 
			
		||||
	</span><span class=data2>
 | 
			
		||||
	%= $c->get_emailunknownuser_status( TRUE )
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_DELEGATE'
 | 
			
		||||
	</span><span class=data2>
 | 
			
		||||
	%= $c->get_value('DelegateMailServer')
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
	<p><span class=label>
 | 
			
		||||
	%=l 'mai_LABEL_SMARTHOST'
 | 
			
		||||
	</span><span class=data2>
 | 
			
		||||
	%= $c->get_value('SMTPSmartHost')
 | 
			
		||||
	</span></p>
 | 
			
		||||
 | 
			
		||||
    % 	my $btn = l('mai_DESC_STATE_DELIVERY_BUTTON');
 | 
			
		||||
    <div class='center'>
 | 
			
		||||
	%= submit_button "$btn", class => 'action'
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
	%= hidden_field 'trt' => 'DEL'
 | 
			
		||||
    % end    
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
%end
 | 
			
		||||
@@ -2,7 +2,6 @@
 | 
			
		||||
    PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 | 
			
		||||
    "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html>
 | 
			
		||||
<!-- default +jquery -->
 | 
			
		||||
<head>
 | 
			
		||||
<title><%= $title %></title>
 | 
			
		||||
    <link rel="made" href="mailto:bugs%40koozali.org">
 | 
			
		||||
@@ -11,27 +10,16 @@
 | 
			
		||||
    %= stylesheet '/css/new_sme.css'
 | 
			
		||||
    %= stylesheet '/css/new-sme-main.css'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    %# Replaced by consolidated (and rationlised) CSS files as above March 2025
 | 
			
		||||
    %#= stylesheet '/css/sme_core.css'
 | 
			
		||||
    %#= stylesheet '/css/sme_main.css'
 | 
			
		||||
    %#= stylesheet '/css/sme_menu.css'
 | 
			
		||||
    %#= stylesheet '/css/styles.css'
 | 
			
		||||
    %#= stylesheet '/css/sme-password.css'
 | 
			
		||||
 | 
			
		||||
    %= content_for 'head_contrib'
 | 
			
		||||
    % if (config 'hasJquery') {
 | 
			
		||||
	%= include 'partials/_js_imports'
 | 
			
		||||
	%= include 'common_js'
 | 
			
		||||
    % if (config 'hasJquery') { 
 | 
			
		||||
		%= include 'partials/_js_imports'
 | 
			
		||||
		%= include 'common_js'
 | 
			
		||||
    % }
 | 
			
		||||
    %= content_for 'refresh'
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    %= content_for 'refresh' 
 | 
			
		||||
    %= stylesheet '/js/datatables.min.css'
 | 
			
		||||
 | 
			
		||||
	%= javascript '/js/datatables.min.js'
 | 
			
		||||
 | 
			
		||||
	%= stylesheet '/js/jquery-ui.min.css'
 | 
			
		||||
 | 
			
		||||
	%= javascript '/js/jquery-ui.min.js'
 | 
			
		||||
	%= javascript '/js/dataTables.buttons.min.js'
 | 
			
		||||
	%= javascript '/js/jszip.min.js'
 | 
			
		||||
@@ -44,26 +32,23 @@
 | 
			
		||||
 | 
			
		||||
	<link rel="stylesheet" href="/smanager/css/flag-icon.min.css">
 | 
			
		||||
	%= stylesheet '/css/sme-jquery-overrides.css'
 | 
			
		||||
	
 | 
			
		||||
	<style>
 | 
			
		||||
	#busy-indicator {
 | 
			
		||||
		display: none;
 | 
			
		||||
		margin-top: 10px;
 | 
			
		||||
		font-weight: bold;
 | 
			
		||||
		color: red;
 | 
			
		||||
	}
 | 
			
		||||
	.busy {
 | 
			
		||||
		cursor: wait; /* Change the cursor to a 'wait' cursor */
 | 
			
		||||
	}
 | 
			
		||||
	</style>
 | 
			
		||||
 | 
			
		||||
	%# panel specific css file 
 | 
			
		||||
	% my $controller = stash('controller');
 | 
			
		||||
	% if ($controller) {
 | 
			
		||||
		% my $css_path = "css/$controller.css";
 | 
			
		||||
		%# Use the url_for helper to generate the correct static file URL
 | 
			
		||||
		% if (app->static->file($css_path)) {
 | 
			
		||||
		  <link rel="stylesheet" href="<%= url_for("/$css_path") %>">
 | 
			
		||||
		% }
 | 
			
		||||
	% }
 | 
			
		||||
 | 
			
		||||
</head>
 | 
			
		||||
 | 
			
		||||
<body>
 | 
			
		||||
%   if ( not defined $c->session->{lang} ) {
 | 
			
		||||
%	SrvMngr::init_session ( $c );
 | 
			
		||||
%    }
 | 
			
		||||
	%   if ( not defined $c->session->{lang} ) {
 | 
			
		||||
		% SrvMngr::init_session ( $c );
 | 
			
		||||
	%    }
 | 
			
		||||
 | 
			
		||||
    <div id="header">
 | 
			
		||||
	%= include 'partials/_header'
 | 
			
		||||
        % if ($c->is_logged_in && scalar @{SrvMngr::theme_list( $c )} > 1) {
 | 
			
		||||
@@ -72,42 +57,40 @@
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div id="container">
 | 
			
		||||
		% if (config 'hasJquery') {
 | 
			
		||||
			%= content 'js_toggleMenu'
 | 
			
		||||
		% }
 | 
			
		||||
 | 
			
		||||
	% if (config 'hasJquery') {
 | 
			
		||||
	    %= content 'js_toggleMenu'
 | 
			
		||||
	% }
 | 
			
		||||
 | 
			
		||||
	<div id="navigation" class="col-md-3 module">
 | 
			
		||||
	    %= include 'partials/_nav_menu'
 | 
			
		||||
%	if ( $c->is_logged_in ) {
 | 
			
		||||
	    %= include 'partials/_user_menu'
 | 
			
		||||
%	}
 | 
			
		||||
%	if ( $c->is_admin ) {
 | 
			
		||||
	    %= include 'partials/_navig2'
 | 
			
		||||
%	}
 | 
			
		||||
	</div>
 | 
			
		||||
	<div id="main" class="col-md-9">
 | 
			
		||||
 | 
			
		||||
	    %= include 'partials/_info'
 | 
			
		||||
 | 
			
		||||
	    % if (flash 'success') {
 | 
			
		||||
		<br><div class="success module">
 | 
			
		||||
		%= $c->render_to_string(inline => flash 'success') 
 | 
			
		||||
		<div id="navigation" class="col-md-3 module">
 | 
			
		||||
			%= include 'partials/_nav_menu'
 | 
			
		||||
			% if ( $c->is_logged_in ) {
 | 
			
		||||
				%= include 'partials/_user_menu'
 | 
			
		||||
			% }
 | 
			
		||||
			% if ( $c->is_admin ) {
 | 
			
		||||
				%= include 'partials/_navig2'
 | 
			
		||||
			% }
 | 
			
		||||
		</div>
 | 
			
		||||
	    % }
 | 
			
		||||
	    % if ( flash 'warning' ) {
 | 
			
		||||
		<br><div class="sme-warning  module">
 | 
			
		||||
		%= $c->render_to_string(inline => flash 'warning') 
 | 
			
		||||
 | 
			
		||||
		<div id="main" class="col-md-9">
 | 
			
		||||
			%= include 'partials/_info'
 | 
			
		||||
			% if (flash 'success') {
 | 
			
		||||
			<br><div class="success module">
 | 
			
		||||
			%= $c->render_to_string(inline => flash 'success') 
 | 
			
		||||
			</div>
 | 
			
		||||
			% }
 | 
			
		||||
			% if ( flash 'warning' ) {
 | 
			
		||||
			<br><div class="sme-warning  module">
 | 
			
		||||
			%= $c->render_to_string(inline => flash 'warning') 
 | 
			
		||||
			</div>
 | 
			
		||||
			%}
 | 
			
		||||
			% if ( flash 'error' ) {
 | 
			
		||||
			<br><div class="sme-error module">
 | 
			
		||||
			%= $c->render_to_string(inline => flash 'error') 
 | 
			
		||||
			</div>
 | 
			
		||||
			%}
 | 
			
		||||
			%= content 'module'
 | 
			
		||||
			%= include 'partials/_footer'
 | 
			
		||||
		</div>
 | 
			
		||||
	    %}
 | 
			
		||||
	    % if ( flash 'error' ) {
 | 
			
		||||
		<br><div class="sme-error module">
 | 
			
		||||
		%= $c->render_to_string(inline => flash 'error') 
 | 
			
		||||
		</div>
 | 
			
		||||
	    %}
 | 
			
		||||
	    %= content 'module'
 | 
			
		||||
	    %= include 'partials/_footer'
 | 
			
		||||
	</div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    % if (config 'hasJquery') {
 | 
			
		||||
@@ -115,23 +98,17 @@
 | 
			
		||||
	%= content 'js_togglePassword'
 | 
			
		||||
    % }
 | 
			
		||||
 | 
			
		||||
%= javascript '/js/sme-dataTable-setup.js'
 | 
			
		||||
 | 
			
		||||
	<script>
 | 
			
		||||
		$(document).ready(function() {
 | 
			
		||||
			// Handle form submission for any form
 | 
			
		||||
			$('form').on('submit', function(event) {
 | 
			
		||||
				// Disable the submit button
 | 
			
		||||
				$(this).find('button[type="submit"], input[type="submit"]').prop('disabled', true);
 | 
			
		||||
				// Show the busy indicator
 | 
			
		||||
//				$('#busy-indicator').show();
 | 
			
		||||
				
 | 
			
		||||
				// Change the cursor to "wait"
 | 
			
		||||
				$('body').addClass('busy');
 | 
			
		||||
			});
 | 
			
		||||
		});
 | 
			
		||||
	</script>
 | 
			
		||||
	%= javascript '/js/sme-dataTable-setup.js'
 | 
			
		||||
 | 
			
		||||
	%# Specific panel js code
 | 
			
		||||
	% $controller = stash('controller');
 | 
			
		||||
	% if ($controller) {
 | 
			
		||||
		% my $js_path  = "js/$controller.js";
 | 
			
		||||
		%# Use the url_for helper to generate the correct static file URL
 | 
			
		||||
		% if (app->static->file($js_path)) {
 | 
			
		||||
		  <script src="<%= url_for("/$js_path") %>"></script>
 | 
			
		||||
		% }
 | 
			
		||||
	% }
 | 
			
		||||
  
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -6,12 +6,12 @@
 | 
			
		||||
    % my $router = $ln_datas->{router};
 | 
			
		||||
    
 | 
			
		||||
   % if (config->{debug} == 1) {
 | 
			
		||||
	<p>
 | 
			
		||||
	%= dumper $c->current_route
 | 
			
		||||
	%= dumper $c->stash("ret")
 | 
			
		||||
    %= dumper %$ln_datas
 | 
			
		||||
    %= dumper $deletehosts
 | 
			
		||||
	</p>
 | 
			
		||||
	<pre>
 | 
			
		||||
		%= dumper $c->current_route
 | 
			
		||||
		%= dumper $c->stash("ret")
 | 
			
		||||
		%= dumper %$ln_datas
 | 
			
		||||
		%= dumper $deletehosts
 | 
			
		||||
	</pre>
 | 
			
		||||
    % }
 | 
			
		||||
     
 | 
			
		||||
    %= form_for '/localnetworkse' => (method => 'POST') => begin
 | 
			
		||||
@@ -56,4 +56,4 @@
 | 
			
		||||
 | 
			
		||||
	%end
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</div>
 | 
			
		||||
@@ -8,9 +8,9 @@
 | 
			
		||||
	% my ($var1, $var2, $var3, $var4, $var5, $var6, $var7) = @vars;
 | 
			
		||||
 | 
			
		||||
	% if ($c->app->config->{debug}) {
 | 
			
		||||
	<p>
 | 
			
		||||
	<pre>
 | 
			
		||||
		%= dumper { ret_data => \%ret }
 | 
			
		||||
	</p>  
 | 
			
		||||
	</pre>  
 | 
			
		||||
	% }
 | 
			
		||||
 | 
			
		||||
	% if ($ret{ret} eq "") {
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,54 @@
 | 
			
		||||
%#
 | 
			
		||||
%# Generated by SM2Gen version:0.9(20Jan2025) Chameleon version:4.5.4 On Python:3.12.3 at 2025-06-29 08:53:20 
 | 
			
		||||
%#
 | 
			
		||||
<div id="Emailsettings-ACC" class="partial Emailsettings-ACC">
 | 
			
		||||
%#	<script>
 | 
			
		||||
%#		window.onload = function() {
 | 
			
		||||
%#		SelectInput();
 | 
			
		||||
%#	};
 | 
			
		||||
%#	</script>
 | 
			
		||||
	% if (config->{debug} == 1) {
 | 
			
		||||
		<pre>
 | 
			
		||||
			%= dumper $mai_data
 | 
			
		||||
		</pre>
 | 
			
		||||
	% }
 | 
			
		||||
	% my $btn = l('SAVE');
 | 
			
		||||
	% $c->param(Selected => undef); #This may need deleting for a params panel - only needed for a table
 | 
			
		||||
 | 
			
		||||
	<h2><%= $c->l('mai_DESC_STATE_ACCESS_BUTTON') %></h2><br>
 | 
			
		||||
	%= form_for "emailsettingsu" => (method => 'POST') => begin
 | 
			
		||||
		% param 'trt' => $mai_data->{trt} unless param 'trt';
 | 
			
		||||
		%= hidden_field 'trt' => $mai_data->{trt}
 | 
			
		||||
		%# Inputs etc in here.
 | 
			
		||||
		%=l 'mai_DESC_POP_ACCESS_CONTROL'
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_POP_ACCESS_CONTROL'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'POPAccess' => $c->get_current_pop3_access() unless param 'POPAccess';
 | 
			
		||||
		%= select_field 'POPAccess' => $c->get_pop_opt(), class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		%=l 'mai_DESC_IMAP_ACCESS_CONTROL'
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_IMAP_ACCESS_CONTROL'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'IMAPAccess' => $c->get_current_imap_access() unless param 'IMAPAccess';
 | 
			
		||||
		%= select_field 'IMAPAccess' => $c->get_imap_opt(), class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		%=l 'mai_DESC_WEBMAIL'
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_WEBMAIL'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'WebMail' => $c->get_current_webmail_status() unless param 'WebMail';
 | 
			
		||||
		%= select_field 'WebMail' => $c->get_webmail_opt(), class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		%# ....
 | 
			
		||||
		%# Probably finally by a submit.
 | 
			
		||||
		%= submit_button $btn, class => 'action'
 | 
			
		||||
	%end    
 | 
			
		||||
</div>
 | 
			
		||||
@@ -0,0 +1,90 @@
 | 
			
		||||
%#
 | 
			
		||||
%# Generated by SM2Gen version:0.9(20Jan2025) Chameleon version:4.5.4 On Python:3.12.3 at 2025-06-29 08:53:20 
 | 
			
		||||
%#
 | 
			
		||||
<div id="Emailsettings-DEL" class="partial Emailsettings-DEL">
 | 
			
		||||
%#	<script>
 | 
			
		||||
%#		window.onload = function() {
 | 
			
		||||
%#		SelectInput();
 | 
			
		||||
%#	};
 | 
			
		||||
%#	</script>
 | 
			
		||||
	% if (config->{debug} == 1) {
 | 
			
		||||
		<pre>
 | 
			
		||||
			%= dumper $mai_data
 | 
			
		||||
		</pre>
 | 
			
		||||
	% }
 | 
			
		||||
	% my $btn = l('SAVE');
 | 
			
		||||
	% $c->param(Selected => undef); #This may need deleting for a params panel - only needed for a table
 | 
			
		||||
 | 
			
		||||
	<h2><%= $c->l('mai_DESC_STATE_DELIVERY_BUTTON') %></h2>
 | 
			
		||||
	%= form_for "emailsettingsu" => (method => 'POST') => begin
 | 
			
		||||
		% param 'trt' => $mai_data->{trt} unless param 'trt';
 | 
			
		||||
		%= hidden_field 'trt' => $mai_data->{trt}
 | 
			
		||||
		%# Inputs etc in here.
 | 
			
		||||
		<h2>
 | 
			
		||||
		%=l 'mai_TITLE_UNKNOWN'
 | 
			
		||||
		</h2>
 | 
			
		||||
 | 
			
		||||
		%=l 'mai_DESC_UNKNOWN'
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_UNKNOWN'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'EmailUnknownUser' => $mai_data->{emailunknownuser} unless param 'EmailUnknownUser';
 | 
			
		||||
		%= select_field 'EmailUnknownUser' => $c->get_emailunknownuser_opt(), class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<!--<hr class='menubar' />-->
 | 
			
		||||
		<h2>
 | 
			
		||||
		%=l 'mai_TITLE_DELEGATE'
 | 
			
		||||
		</h2>
 | 
			
		||||
 | 
			
		||||
		%=l 'mai_DESC_DELEGATE'
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_DELEGATE'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'DelegateMailServer' => $mai_data->{delegatemailserver} unless param 'DelegateMailServer';
 | 
			
		||||
		%= text_field 'DelegateMailServer', class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<!--<hr class='sectionbar' />-->
 | 
			
		||||
		<h2>
 | 
			
		||||
		%=l 'mai_TITLE_SMARTHOST'
 | 
			
		||||
		</h2>
 | 
			
		||||
 | 
			
		||||
		%=l 'mai_DESC_SMARTHOST'
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_SMARTHOST'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'SMTPSmartHost' => $mai_data->{smtpsmarthost} unless param 'SMTPSmartHost';
 | 
			
		||||
		%= text_field 'SMTPSmartHost', class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_SMARTHOST_SMTPAUTH_STATUS'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'SMTPAUTHPROXY_status' => $mai_data->{smtpauthproxystatus} unless param 'SMTPAUTHPROXY_status';
 | 
			
		||||
		%= select_field 'SMTPAUTHPROXY_status' => [[(l 'DISABLED') => 'disabled'], [(l 'ENABLED') => 'enabled']], class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_SMARTHOST_SMTPAUTH_USERID'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'SMTPAUTHPROXY_Userid' => $mai_data->{smtpauthproxyuserid} unless param 'SMTPAUTHPROXY_Userid';
 | 
			
		||||
		%= text_field 'SMTPAUTHPROXY_Userid', class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_SMARTHOST_SMTPAUTH_PASSWD'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'SMTPAUTHPROXY_Passwd' => $mai_data->{smtpauthproxypassword} unless param 'SMTPAUTHPROXY_Passwd';
 | 
			
		||||
		%= password_field 'SMTPAUTHPROXY_Passwd', class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		%# ....
 | 
			
		||||
		%# Probably finally by a submit.
 | 
			
		||||
		%= submit_button $btn, class => 'action'
 | 
			
		||||
	%end    
 | 
			
		||||
</div>
 | 
			
		||||
@@ -0,0 +1,98 @@
 | 
			
		||||
%#
 | 
			
		||||
%# Generated by SM2Gen version:0.9(20Jan2025) Chameleon version:4.5.4 On Python:3.12.3 at 2025-06-29 08:53:20 
 | 
			
		||||
%#
 | 
			
		||||
<div id="Emailsettings-FIL" class="partial Emailsettings-FIL">
 | 
			
		||||
%#	<script>
 | 
			
		||||
%#		window.onload = function() {
 | 
			
		||||
%#		SelectInput();
 | 
			
		||||
%#	};
 | 
			
		||||
%#	</script>
 | 
			
		||||
	% if (config->{debug} == 1) {
 | 
			
		||||
		<pre>
 | 
			
		||||
			%= dumper $mai_data
 | 
			
		||||
		</pre>
 | 
			
		||||
	% }
 | 
			
		||||
	% my $btn = l('SAVE');
 | 
			
		||||
	% $c->param(Selected => undef); #This may need deleting for a params panel - only needed for a table
 | 
			
		||||
 | 
			
		||||
	<h2><%= $c->l('mai_DESC_STATE_FILTERING_BUTTON') %></h2><br>
 | 
			
		||||
	%= form_for "emailsettingsu" => (method => 'POST') => begin
 | 
			
		||||
		% param 'trt' => $mai_data->{trt} unless param 'trt';
 | 
			
		||||
		%= hidden_field 'trt' => $mai_data->{trt}
 | 
			
		||||
		%# Inputs etc in here.
 | 
			
		||||
		%=l 'mai_DESC_VIRUS_SCAN'
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_VIRUS_SCAN'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'VirusStatus' => $mai_data->{virusstatus} unless param 'VirusStatus';
 | 
			
		||||
		%= select_field 'VirusStatus' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => 'input'
 | 
			
		||||
		</span><br></p>
 | 
			
		||||
 | 
			
		||||
		%=l 'mai_DESC_SPAM_SCAN'
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_SPAM_SCAN'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'Spamstatus' => $mai_data->{spamstatus} unless param 'Spamstatus';
 | 
			
		||||
		%= select_field 'Spamstatus' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_SPAM_SENSITIVITY'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'SpamSensitivity' => $mai_data->{spamsensitivity} unless param 'SpamSensitivity';
 | 
			
		||||
		%= select_field 'SpamSensitivity' => $c->get_spam_sensitivity_opt(), class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_SPAM_TAGLEVEL'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'SpamTagLevel' => $mai_data->{spamtaglevel} unless param 'SpamTagLevel';
 | 
			
		||||
		%= select_field 'SpamTagLevel' => $c->get_spam_level_options(), class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_SPAM_REJECTLEVEL'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'SpamRejectLevel' => $mai_data->{spamrejectlevel} unless param 'SpamRejectLevel';
 | 
			
		||||
		%= select_field 'SpamRejectLevel' => $c->get_spam_level_options(), class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_SORTSPAM'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'SpamSortSpam' => $mai_data->{spamsortspam} unless param 'SpamSortSpam';
 | 
			
		||||
		%= select_field 'SpamSortSpam' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		%=l 'mai_DESC_SPAM_SUBJECT'
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_SPAM_SUBJECTTAG'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'SpamSubjectTag' => $mai_data->{spamsubjecttag} unless param 'SpamSubjectTag';
 | 
			
		||||
		%= select_field 'SpamSubjectTag' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_SPAM_SUBJECT'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'SpamSubject' => $mai_data->{spamsubject} unless param 'SpamSubject';
 | 
			
		||||
		%= text_field 'SpamSubject' => class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		%=l 'mai_DESC_BLOCK_EXECUTABLE_CONTENT'
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_CONTENT_TO_BLOCK'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'BlockExecutableContent' => $c->get_patterns_current_opt() unless param 'BlockExecutableContent';
 | 
			
		||||
		%= select_field 'BlockExecutableContent' => $c->get_patterns_opt(), class => 'input', multiple => "1"
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		%# ....
 | 
			
		||||
		%# Probably finally by a submit.
 | 
			
		||||
		%= submit_button $btn, class => 'action'
 | 
			
		||||
	%end    
 | 
			
		||||
</div>
 | 
			
		||||
@@ -0,0 +1,152 @@
 | 
			
		||||
%#
 | 
			
		||||
%# Generated by SM2Gen version:0.9(20Jan2025) Chameleon version:4.5.4 On Python:3.12.3 at 2025-06-29 08:53:20 
 | 
			
		||||
%#
 | 
			
		||||
<div id="Emailsettings-FRONT" class="partial Emailsettings-FRONT">
 | 
			
		||||
%#	<script>
 | 
			
		||||
%#		window.onload = function() {
 | 
			
		||||
%#		SelectInput();
 | 
			
		||||
%#	};
 | 
			
		||||
%#	</script>
 | 
			
		||||
	% if (config->{debug} == 1) {
 | 
			
		||||
		<pre>
 | 
			
		||||
			%= dumper $mai_data
 | 
			
		||||
			<br> 
 | 
			
		||||
		</pre>
 | 
			
		||||
	% }
 | 
			
		||||
	% $c->param(Selected => undef); #This may need deleting for a params panel - only needed for a table
 | 
			
		||||
	% my $btn = l('Modify');
 | 
			
		||||
	<fieldset>
 | 
			
		||||
		<legend><%= $c->l('mai_DESC_STATE_ACCESS_BUTTON') %></legend>
 | 
			
		||||
		%= form_for 'emailsettings' => (method => 'POST') => begin
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_POP_ACCESS_CONTROL'
 | 
			
		||||
		</span><span class=data2>
 | 
			
		||||
		%= $c->get_current_pop3_access( TRUE )
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_IMAP_ACCESS_CONTROL'
 | 
			
		||||
		</span><span class=data2>
 | 
			
		||||
		%= $c->get_current_imap_access( TRUE )
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_WEBMAIL'
 | 
			
		||||
		</span><span class=data2>
 | 
			
		||||
		%= $c->get_current_webmail_status( TRUE )
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<br> 
 | 
			
		||||
		<div class='center'>
 | 
			
		||||
		%= submit_button "$btn", class => 'action'
 | 
			
		||||
		</div>
 | 
			
		||||
 | 
			
		||||
		%= hidden_field 'trt' => 'ACC'
 | 
			
		||||
		% end   
 | 
			
		||||
		</fieldset>
 | 
			
		||||
		<br> 
 | 
			
		||||
 | 
			
		||||
		
 | 
			
		||||
	<fieldset>
 | 
			
		||||
		<legend><%= $c->l('mai_DESC_STATE_FILTERING_BUTTON') %></legend>
 | 
			
		||||
		%= form_for 'emailsettings' => (method => 'POST') => begin
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_VIRUS_SCAN'
 | 
			
		||||
		</span><span class=data2>
 | 
			
		||||
		%= $c->get_virus_status(TRUE)
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_SPAM_SCAN'
 | 
			
		||||
		</span><span class=data2>
 | 
			
		||||
		%= $c->get_spam_status(TRUE)
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_BLOCK_EXECUTABLE_CONTENT'
 | 
			
		||||
		</span><span class=data2>
 | 
			
		||||
		%= $c->get_patterns_status(TRUE)
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<br> 
 | 
			
		||||
		<div class='center'>
 | 
			
		||||
		%= submit_button "$btn", class => 'action'
 | 
			
		||||
		</div>
 | 
			
		||||
 | 
			
		||||
		%= hidden_field 'trt' => 'FIL'
 | 
			
		||||
		% end  
 | 
			
		||||
	</fieldset>
 | 
			
		||||
    <br>  
 | 
			
		||||
 | 
			
		||||
	<fieldset>
 | 
			
		||||
		<legend><%= $c->l('mai_DESC_STATE_RECEPTION_BUTTON') %></legend>
 | 
			
		||||
		%= form_for 'emailsettings' => (method => 'POST') => begin
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_MODE'
 | 
			
		||||
		</span><span class=data2>
 | 
			
		||||
		%= $mai_data->{fetchmailmethod}
 | 
			
		||||
		</span></p>
 | 
			
		||||
		
 | 
			
		||||
		% my $smtp_mesg;
 | 
			
		||||
 | 
			
		||||
		% $smtp_mesg=l('SMTP port %u allow client to authenticate:');
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
			%= sprintf($smtp_mesg,$c->get_db_prop('qpsmtpd','TCPPort',25)); 
 | 
			
		||||
		</span><span class=data2>
 | 
			
		||||
		%= $c->get_current_smtp_auth( TRUE )
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		% $smtp_mesg=l('SMTPS SSL/TLS auth: port %u status:');
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
			%= sprintf($smtp_mesg,$c->get_db_prop('sqpsmtpd','TCPPort',465)); 
 | 
			
		||||
		</span><span class=data2>
 | 
			
		||||
		%= $c->get_current_smtp_ssl_auth( TRUE, 's', FALSE )
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		% $smtp_mesg=l 'Submission port %u status:';
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
			%= sprintf($smtp_mesg,$c->get_db_prop('uqpsmtpd','TCPPort',587)); 
 | 
			
		||||
		</span><span class=data2>
 | 
			
		||||
		%= $c->get_current_smtp_ssl_auth( TRUE,'u', FALSE )
 | 
			
		||||
		</span></p>
 | 
			
		||||
		<br />
 | 
			
		||||
 | 
			
		||||
		<div class='center'>
 | 
			
		||||
		%= submit_button "$btn", class => 'action'
 | 
			
		||||
		</div>
 | 
			
		||||
 | 
			
		||||
		%= hidden_field 'trt' => 'REC'
 | 
			
		||||
		% end    
 | 
			
		||||
	</fieldset>
 | 
			
		||||
    <br>
 | 
			
		||||
 | 
			
		||||
	<fieldset>
 | 
			
		||||
		<legend><%= $c->l('mai_DESC_STATE_DELIVERY_BUTTON') %></legend>
 | 
			
		||||
		%= form_for 'emailsettings' => (method => 'POST') => begin
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_UNKNOWN'
 | 
			
		||||
		</span><span class=data2>
 | 
			
		||||
		%= $c->get_emailunknownuser_status( TRUE )
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_DELEGATE'
 | 
			
		||||
		</span><span class=data2>
 | 
			
		||||
		%= $c->get_value('DelegateMailServer')
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_SMARTHOST'
 | 
			
		||||
		</span><span class=data2>
 | 
			
		||||
		%= $c->get_value('SMTPSmartHost')
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<br> 
 | 
			
		||||
		<div class='center'>
 | 
			
		||||
		%= submit_button "$btn", class => 'action'
 | 
			
		||||
		</div>
 | 
			
		||||
 | 
			
		||||
		%= hidden_field 'trt' => 'DEL'
 | 
			
		||||
		% end    
 | 
			
		||||
	</fieldset>
 | 
			
		||||
</div>
 | 
			
		||||
@@ -0,0 +1,159 @@
 | 
			
		||||
%#
 | 
			
		||||
%# Generated by SM2Gen version:0.9(20Jan2025) Chameleon version:4.5.4 On Python:3.12.3 at 2025-06-29 08:53:20 
 | 
			
		||||
%#
 | 
			
		||||
<div id="Emailsettings-REC" class="partial Emailsettings-REC">
 | 
			
		||||
%#	<script>
 | 
			
		||||
%#		window.onload = function() {
 | 
			
		||||
%#		SelectInput();
 | 
			
		||||
%#	};
 | 
			
		||||
%#	</script>
 | 
			
		||||
	% if (config->{debug} == 1) {
 | 
			
		||||
		<pre>
 | 
			
		||||
			%= dumper $mai_data
 | 
			
		||||
		</pre>
 | 
			
		||||
	% }
 | 
			
		||||
	% my $btn = l('SAVE');
 | 
			
		||||
	% $c->param(Selected => undef); #This may need deleting for a params panel - only needed for a table
 | 
			
		||||
 | 
			
		||||
	<h2><%= $c->l('mai_DESC_STATE_RECEPTION_BUTTON') %></h2><br>
 | 
			
		||||
	%= form_for "emailsettingsu" => (method => 'POST') => begin
 | 
			
		||||
		% param 'trt' => $mai_data->{trt} unless param 'trt';
 | 
			
		||||
		%= hidden_field 'trt' => $mai_data->{trt}
 | 
			
		||||
		%# Inputs etc in here.
 | 
			
		||||
		%=l 'mai_DESC_MODE'
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_MODE'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'FetchmailMethod' => $mai_data->{fetchmailmethod} unless param 'FetchmailMethod';
 | 
			
		||||
	<!--
 | 
			
		||||
		<pre>
 | 
			
		||||
			%= dumper $mai_data->{fetchmailmethod}
 | 
			
		||||
			%= dumper $c->get_retrieval_opt()
 | 
			
		||||
			%= param 'FetchmailMethod'
 | 
			
		||||
		</pre>
 | 
			
		||||
	-->
 | 
			
		||||
		%= select_field 'FetchmailMethod' => $c->get_retrieval_opt(), class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		%#=l 'mai_DESC_SMTP_AUTH_CONTROL'
 | 
			
		||||
		<br />
 | 
			
		||||
		%= l "SMTP port (25) main purpose is to receive emails from another server, STARTTLS is always offered, but auth if offered is only if STARTTLS is also used by client."
 | 
			
		||||
		<br />
 | 
			
		||||
		%= l "SMTPS port (465) will require implicit SSL/TLS then authenticate to send."
 | 
			
		||||
		<br />
 | 
			
		||||
		%= l "SMTP Submission port (587) will require STARTTLS, then authenticate to send."
 | 
			
		||||
		<br />
 | 
			
		||||
 | 
			
		||||
		% my $smtp_mesg=l('SMTP port %u allow client to authenticate:');
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
			%= sprintf($smtp_mesg,$c->get_db_prop('qpsmtpd','TCPPort',25)); 
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
			% param 'SMTPAuth' => $c->get_current_smtp_auth( FALSE ) unless param 'SMTPAuth';
 | 
			
		||||
	<!--
 | 
			
		||||
		<pre>
 | 
			
		||||
			%= dumper $c->get_smtp_auth_opt()
 | 
			
		||||
			%= dumper $c->get_current_smtp_auth(FALSE)
 | 
			
		||||
			%= dumper $c->get_db_prop("qpsmtpd","Authentication")
 | 
			
		||||
			%= param 'SMTPAuth'
 | 
			
		||||
		</pre>
 | 
			
		||||
	-->
 | 
			
		||||
			%= select_field 'SMTPAuth' => $c->get_smtp_auth_opt(), class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		% my $smtp_mesg=l('SMTPS SSL/TLS auth: port %u status:');
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
			%= sprintf($smtp_mesg,$c->get_db_prop('sqpsmtpd','TCPPort',465)); 
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
			% param 'sSMTPAuth' => $c->get_current_smtp_ssl_auth(FALSE,'s', TRUE) unless param 'sSMTPAuth';
 | 
			
		||||
		
 | 
			
		||||
			%= select_field 'sSMTPAuth' => $c->get_smtp_ssl_auth_opt(), class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		%my $smtp_mesg=l('Submission port %u status:');
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
			%= sprintf($smtp_mesg,$c->get_db_prop('uqpsmtpd','TCPPort',587)); 
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
			% param 'uSMTPAuth' => $c->get_current_smtp_ssl_auth(FALSE,'u', TRUE) unless param 'uSMTPAuth';
 | 
			
		||||
	<!--
 | 
			
		||||
		<pre>
 | 
			
		||||
			%= dumper $c->get_smtp_ssl_auth_opt()
 | 
			
		||||
			%= dumper $c->get_current_smtp_ssl_auth(FALSE,'s', TRUE)
 | 
			
		||||
			%= dumper $c->get_current_smtp_ssl_auth(FALSE,'u', TRUE)
 | 
			
		||||
			%= dumper $c->get_db_prop("uqpsmtpd","access")
 | 
			
		||||
			%= param 'uSMTPAuth'
 | 
			
		||||
		</pre>
 | 
			
		||||
	-->
 | 
			
		||||
		%= select_field 'uSMTPAuth' => $c->get_smtp_ssl_auth_opt(), class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<!--<hr class="sectionbar" />-->
 | 
			
		||||
		<h2>
 | 
			
		||||
		%=l 'mai_TITLE_SECONDARY'
 | 
			
		||||
		</h2><br>
 | 
			
		||||
 | 
			
		||||
		%=l 'mai_DESC_SECONDARY'
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_SECONDARY'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'SecondaryMailServer' => $mai_data->{secondarymailserver} unless param 'SecondaryMailServer';
 | 
			
		||||
		%= text_field 'SecondaryMailServer', class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		%=l 'mai_DESC_FETCH_PERIOD'
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_FETCH_PERIOD'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'FreqOffice' => $mai_data->{freqoffice} unless param 'FreqOffice';
 | 
			
		||||
		%= select_field 'FreqOffice' => $c->fetchmail_freq(), class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_FETCH_PERIOD_NIGHTS'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'FreqOutside' => $mai_data->{freqoutside} unless param 'FreqOutside';
 | 
			
		||||
		%= select_field 'FreqOutside' => $c->fetchmail_freq(), class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_FETCH_PERIOD_WEEKENDS'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'FreqWeekend' => $mai_data->{freqweekend} unless param 'FreqWeekend';
 | 
			
		||||
		%= select_field 'FreqWeekend' => $c->fetchmail_freq(), class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_POP_ACCOUNT'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'SecondaryMailAccount' => $mai_data->{secondarymailaccount} unless param 'SecondaryMailAccount';
 | 
			
		||||
		%= text_field 'SecondaryMailAccount', class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_POP_PASS'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'SecondaryMailPassword' => $mai_data->{secondarymailpassword} unless param 'SecondaryMailPassword';
 | 
			
		||||
		%= password_field 'SecondaryMailPassword', class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_SORT_METHOD'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'SpecifyHeader' => $mai_data->{specifyheader} unless param 'SpecifyHeader';
 | 
			
		||||
		%= select_field 'SpecifyHeader' => [[(l 'mai_DEFAULT') => 'off'], [(l 'mai_SPECIFY_BELOW') => 'on']], class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		<p><span class=label>
 | 
			
		||||
		%=l 'mai_LABEL_SORT_HEADER'
 | 
			
		||||
		</span><span class=input>
 | 
			
		||||
		% param 'SecondaryMailEnvelope' => $mai_data->{secondarymailenvelope} unless param 'SecondaryMailEnvelope';
 | 
			
		||||
		%= text_field 'SecondaryMailEnvelope', class => 'input'
 | 
			
		||||
		</span></p>
 | 
			
		||||
 | 
			
		||||
		%# ....
 | 
			
		||||
		%# Probably finally by a submit.
 | 
			
		||||
		%= submit_button $btn, class => 'action'
 | 
			
		||||
	%end    
 | 
			
		||||
</div>
 | 
			
		||||
@@ -1,6 +1,5 @@
 | 
			
		||||
% layout 'default', title => "Sme server 2 - qmailanalog";
 | 
			
		||||
% content_for 'module' => begin
 | 
			
		||||
%= javascript '/js/qmailanalog.js'
 | 
			
		||||
<div id='module' class='module qmailanalog-panel'>
 | 
			
		||||
    %if (config->{debug} == 1) {
 | 
			
		||||
	<p>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@ Summary: Sme server  navigation module : manager 2
 | 
			
		||||
%define name smeserver-manager
 | 
			
		||||
Name: %{name}
 | 
			
		||||
%define version 11.0.0
 | 
			
		||||
%define release 96
 | 
			
		||||
%define release 102
 | 
			
		||||
Version: %{version}
 | 
			
		||||
Release: %{release}%{?dist}
 | 
			
		||||
License: GPL
 | 
			
		||||
@@ -36,6 +36,7 @@ Requires: perl(Net::Netmask) >= 1.9
 | 
			
		||||
Requires: perl(DBM::Deep) >= 2.0011-1
 | 
			
		||||
Requires: perl(Mojo::JWT) >= 0.08-1
 | 
			
		||||
#Requires: perl(Time::TAI64) >= 2.11
 | 
			
		||||
Requires: perl(Data::Validate::IP)
 | 
			
		||||
Requires: mutt >= 1.5.21
 | 
			
		||||
Requires: smeserver-manager-jsquery >= 1.0
 | 
			
		||||
Requires: smeserver-certificates >= 11.0
 | 
			
		||||
@@ -145,8 +146,26 @@ true
 | 
			
		||||
%defattr(-,root,root)
 | 
			
		||||
 | 
			
		||||
%changelog
 | 
			
		||||
* Thu Jul 03 2025 Brian Read <brianr@koozali.org> 11.0.0-102.sme
 | 
			
		||||
- Local Network panel: Make DEL and ADD robust even if called more than once by browser [SME: 13065]
 | 
			
		||||
 | 
			
		||||
* Wed Jul 02 2025 Brian Read <brianr@koozali.org> 11.0.0-101.sme
 | 
			
		||||
- Fix busy cursor, csp intervened. [SME: 13064]
 | 
			
		||||
 | 
			
		||||
* Tue Jul 01 2025 Brian Read <brianr@koozali.org> 11.0.0-100.sme
 | 
			
		||||
- Add code in top template default.html.ep to incorporate any panel specific js and css [SME: 13062]
 | 
			
		||||
 | 
			
		||||
* Mon Jun 30 2025 Brian Read <brianr@koozali.org> 11.0.0-99.sme
 | 
			
		||||
- Directory panel  - Add in open for config db as required by cacheing  [SME: 13059]
 | 
			
		||||
 | 
			
		||||
* Sun Jun 29 2025 Brian Read <brianr@koozali.org> 11.0.0-98.sme
 | 
			
		||||
- Re-factor email settings panel as error handling not working as expected.  [SME: 12973]
 | 
			
		||||
 | 
			
		||||
* Sat Jun 28 2025 Brian Read <brianr@koozali.org> 11.0.0-97.sme
 | 
			
		||||
- fix error handling in emailsettings panel [SME: 12973]
 | 
			
		||||
 | 
			
		||||
* Fri Jun 27 2025 Brian Read <brianr@koozali.org> 11.0.0-96.sme
 | 
			
		||||
- fix [SME: ]
 | 
			
		||||
- Remove *.en files on install in spec file [SME: 13061]
 | 
			
		||||
 | 
			
		||||
* Tue Jun 24 2025 Brian Read <brianr@koozali.org> 11.0.0-95.sme
 | 
			
		||||
- Add clock ticker to datetime panel [SME: 13054]
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user