Compare commits
11 Commits
11_0_0-6_e
...
master
Author | SHA1 | Date | |
---|---|---|---|
ff9191cd37 | |||
359c7cd7ab | |||
847d2286d9 | |||
bebfe041ee | |||
b23ca94b0f | |||
77e79e7b61 | |||
6dd24d9479 | |||
f4311551ca | |||
e91b8f2256 | |||
c2c7e2c12e | |||
ea2b4063e3 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,3 +2,4 @@
|
|||||||
*.log
|
*.log
|
||||||
*spec-20*
|
*spec-20*
|
||||||
*.tar.xz
|
*.tar.xz
|
||||||
|
*.bak
|
||||||
|
@@ -6,7 +6,14 @@ SMEServer Koozali developed git repo for smeserver-email smeserver
|
|||||||
<br />https://wiki.koozali.org/
|
<br />https://wiki.koozali.org/
|
||||||
|
|
||||||
## Bugzilla
|
## Bugzilla
|
||||||
Show list of outstanding bugs: [here](https://bugs.koozali.org/buglist.cgi?component=smeserver-email&product=SME%20Server%2010.X&query_format=advanced&limit=0&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=CONFIRMED)\
|
Show list of outstanding bugs:
|
||||||
|
[All](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=NEEDINFO&bug_status=IN_PROGRESS&bug_status=RESOLVED&bug_status=VERIFIED&cf_package=smeserver-email&classification=SME+Server&list_id=105756&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
|
||||||
|
[Confirmed](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=CONFIRMED&cf_package=smeserver-email&classification=SME+Server&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
|
||||||
|
[Unconfirmed](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=UNCONFIRMED&cf_package=smeserver-email&classification=SME+Server&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
|
||||||
|
[Need info](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=NEEDINFO&cf_package=smeserver-email&classification=SME+Server&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
|
||||||
|
[In progress](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=IN_PROGRESS&cf_package=smeserver-email&classification=SME+Server&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
|
||||||
|
[Resolved](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=RESOLVED&cf_package=smeserver-email&classification=SME+Server&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
|
||||||
|
[Verified](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=VERIFIED&cf_package=smeserver-email&classification=SME+Server&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
|
||||||
And a list of outstanding Legacy bugs: (e-smith-email) [here](https://bugs.koozali.org/buglist.cgi?component=e-smith-email&product=SME%20Server%2010.X&query_format=advanced&limit=0&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=CONFIRMED)
|
And a list of outstanding Legacy bugs: (e-smith-email) [here](https://bugs.koozali.org/buglist.cgi?component=e-smith-email&product=SME%20Server%2010.X&query_format=advanced&limit=0&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=CONFIRMED)
|
||||||
|
|
||||||
## Description
|
## Description
|
||||||
|
@@ -1 +0,0 @@
|
|||||||
sme10
|
|
20
createlinks
20
createlinks
@@ -49,9 +49,16 @@ panel_link("pseudonyms", $panel);
|
|||||||
#--------------------------------------------------
|
#--------------------------------------------------
|
||||||
$event = "console-save";
|
$event = "console-save";
|
||||||
|
|
||||||
safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/smtp-auth-proxy");
|
|
||||||
event_link('fetchmail-migrate-fetchids', $event, '91');
|
event_link('fetchmail-migrate-fetchids', $event, '91');
|
||||||
|
|
||||||
|
#--------------------------------------------------
|
||||||
|
# actions for bootstrap-console-save event:
|
||||||
|
# write config files and create startup link
|
||||||
|
#--------------------------------------------------
|
||||||
|
$event = "bootstrap-console-save";
|
||||||
|
|
||||||
|
event_link("pseudonym-cleanup", $event, "03");
|
||||||
|
|
||||||
#--------------------------------------------------
|
#--------------------------------------------------
|
||||||
# actions for domain-create event:
|
# actions for domain-create event:
|
||||||
# rewrite config files and restart server
|
# rewrite config files and restart server
|
||||||
@@ -73,24 +80,30 @@ $event = "domain-delete";
|
|||||||
#--------------------------------------------------
|
#--------------------------------------------------
|
||||||
$event = "email-update";
|
$event = "email-update";
|
||||||
|
|
||||||
safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/smtp-auth-proxy");
|
|
||||||
event_link('fetchmail-migrate-fetchids', $event, '91');
|
event_link('fetchmail-migrate-fetchids', $event, '91');
|
||||||
|
event_link("pseudonym-cleanup", $event, "30");
|
||||||
|
|
||||||
#--------------------------------------------------
|
#--------------------------------------------------
|
||||||
# actions for group-create event:
|
# actions for group-create event:
|
||||||
#--------------------------------------------------
|
#--------------------------------------------------
|
||||||
$event = "group-create";
|
$event = "group-create";
|
||||||
|
|
||||||
|
event_link("pseudonym-cleanup", $event, "03");
|
||||||
|
|
||||||
#--------------------------------------------------
|
#--------------------------------------------------
|
||||||
# actions for group-delete event:
|
# actions for group-delete event:
|
||||||
#--------------------------------------------------
|
#--------------------------------------------------
|
||||||
$event = "group-delete";
|
$event = "group-delete";
|
||||||
|
|
||||||
|
event_link("pseudonym-cleanup", $event, "03");
|
||||||
|
|
||||||
#--------------------------------------------------
|
#--------------------------------------------------
|
||||||
# actions for group-modify event:
|
# actions for group-modify event:
|
||||||
#--------------------------------------------------
|
#--------------------------------------------------
|
||||||
$event = "group-modify";
|
$event = "group-modify";
|
||||||
|
|
||||||
|
event_link("pseudonym-cleanup", $event, "03");
|
||||||
|
|
||||||
#--------------------------------------------------
|
#--------------------------------------------------
|
||||||
# actions for user-create event:
|
# actions for user-create event:
|
||||||
#--------------------------------------------------
|
#--------------------------------------------------
|
||||||
@@ -126,13 +139,14 @@ $event = "smeserver-email-update";
|
|||||||
event_link("systemd-reload", $event, "89");
|
event_link("systemd-reload", $event, "89");
|
||||||
event_link("systemd-default", $event, "88");
|
event_link("systemd-default", $event, "88");
|
||||||
event_link('fetchmail-migrate-fetchids', $event, '91');
|
event_link('fetchmail-migrate-fetchids', $event, '91');
|
||||||
safe_symlink("try-restart", "root/etc/e-smith/events/$event/services2adjust/smtp-auth-proxy");
|
event_link("pseudonym-cleanup", $event, "03");
|
||||||
|
|
||||||
#--------------------------------------------------
|
#--------------------------------------------------
|
||||||
# actions for pseudonym-{create,delete,modify}
|
# actions for pseudonym-{create,delete,modify}
|
||||||
#--------------------------------------------------
|
#--------------------------------------------------
|
||||||
foreach $event ( qw(pseudonym-create pseudonym-modify pseudonym-delete) )
|
foreach $event ( qw(pseudonym-create pseudonym-modify pseudonym-delete) )
|
||||||
{
|
{
|
||||||
|
event_link("pseudonym-cleanup", $event, "03");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
24
root/etc/e-smith/db/accounts/migrate/10AdminEmail
Normal file
24
root/etc/e-smith/db/accounts/migrate/10AdminEmail
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
my $conf = esmith::ConfigDB->open;
|
||||||
|
return unless $conf;
|
||||||
|
|
||||||
|
my $admin_email = $conf->get_value_and_delete('AdminEmail');
|
||||||
|
return unless defined $admin_email;
|
||||||
|
|
||||||
|
my $admin = $DB->get('admin') ||
|
||||||
|
$DB->new_record('admin', {type => 'system'});
|
||||||
|
if ($admin_email)
|
||||||
|
{
|
||||||
|
$admin->merge_props(
|
||||||
|
EmailForward => 'forward',
|
||||||
|
ForwardAddress => $admin_email,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$admin->merge_props(
|
||||||
|
EmailForward => 'local',
|
||||||
|
ForwardAddress => '',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
22
root/etc/e-smith/events/actions/pseudonym-cleanup
Normal file
22
root/etc/e-smith/events/actions/pseudonym-cleanup
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use esmith::AccountsDB;
|
||||||
|
use esmith::event;
|
||||||
|
|
||||||
|
my $accounts = esmith::AccountsDB->open() or
|
||||||
|
die "Unable to open accounts db: $!";
|
||||||
|
|
||||||
|
my ($self, $account) = @ARGV;
|
||||||
|
|
||||||
|
# Find all "pseudonyms" entries in the e-smith accounts database and
|
||||||
|
# if the pseudonyms has an unexisting Account associated we change
|
||||||
|
# it to user "admin".
|
||||||
|
|
||||||
|
foreach my $pseudo ( $accounts->pseudonyms ) {
|
||||||
|
unless ( $accounts->get($pseudo->prop('Account')) ) {
|
||||||
|
$pseudo->set_prop( 'Account', 'admin' );
|
||||||
|
print "orphaned pseudonym " . $pseudo->key. " has been associated to admin account"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@@ -1,12 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=Koozali SME Server SMTP auth proxy
|
|
||||||
After=network.target remote-fs.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
ExecStartPre=/sbin/e-smith/service-status smtp-auth-proxy
|
|
||||||
ExecStart=/usr/local/sbin/smtp-auth-proxy.pl
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=sme-server.target
|
|
||||||
|
|
@@ -1,174 +0,0 @@
|
|||||||
#!/usr/bin/perl -w -T
|
|
||||||
|
|
||||||
package esmith::SMTPAuthProxy;
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
use vars qw(@ISA);
|
|
||||||
use Net::Server::Fork;
|
|
||||||
use Net::SMTP;
|
|
||||||
use Net::SMTP::SSL;
|
|
||||||
use esmith::ConfigDB;
|
|
||||||
|
|
||||||
@ISA = qw(Net::Server::Fork);
|
|
||||||
|
|
||||||
|
|
||||||
sub options {
|
|
||||||
my $self = shift;
|
|
||||||
my $prop = $self->{server};
|
|
||||||
my $ref = shift;
|
|
||||||
|
|
||||||
$self->SUPER::options($ref);
|
|
||||||
|
|
||||||
my $config = esmith::ConfigDB->open_ro || die "Could not open config db";
|
|
||||||
my $smtp_proxy_rec = $config->get('smtp-auth-proxy');
|
|
||||||
|
|
||||||
$prop->{SMTPSmartHost} = $config->get_value('SMTPSmartHost');
|
|
||||||
$prop->{Blacklist} = $smtp_proxy_rec->prop('Blacklist') || " ";
|
|
||||||
$prop->{Userid} = $smtp_proxy_rec->prop('Userid');
|
|
||||||
$prop->{Passwd} = $smtp_proxy_rec->prop('Passwd');
|
|
||||||
$prop->{Debug} = $smtp_proxy_rec->prop('Debug');
|
|
||||||
$prop->{SystemName} = $config->get_value('SystemName');
|
|
||||||
$prop->{DomainName} = $config->get_value('DomainName');
|
|
||||||
$prop->{PeerPort} = $smtp_proxy_rec->prop('PeerPort') || 25;
|
|
||||||
$prop->{Helo} = $config->get('qpsmtpd')->prop('HeloHost') ||
|
|
||||||
"$prop->{SystemName}.$prop->{DomainName}";
|
|
||||||
}
|
|
||||||
|
|
||||||
esmith::SMTPAuthProxy->run(
|
|
||||||
max_servers => 4,
|
|
||||||
proto => 'tcp',
|
|
||||||
user => 'nobody',
|
|
||||||
group => 'nobody',
|
|
||||||
host => 'localhost',
|
|
||||||
port => 26);
|
|
||||||
exit;
|
|
||||||
|
|
||||||
### over-ridden subs below
|
|
||||||
|
|
||||||
sub process_request
|
|
||||||
{
|
|
||||||
my $self = shift;
|
|
||||||
my $kidpid;
|
|
||||||
|
|
||||||
my $smarthost = $self->get_property('SMTPSmartHost');
|
|
||||||
my $port = $self->get_property('PeerPort');
|
|
||||||
my $user = $self->get_property('user');
|
|
||||||
my $domain_name = $self->get_property('DomainName');
|
|
||||||
my $system_name = $self->get_property('SystemName');
|
|
||||||
my $helo = $self->get_property('Helo');
|
|
||||||
my $name = $self->get_property('Userid');
|
|
||||||
my $pass = $self->get_property('Passwd');
|
|
||||||
my $debug = (($self->get_property('Debug') || 'disabled') eq 'enabled')
|
|
||||||
? 1 : 0;
|
|
||||||
unless ($smarthost && $system_name && $domain_name && $name && $pass)
|
|
||||||
{
|
|
||||||
print "421 Internal error\n";
|
|
||||||
warn "Insufficient configuration for smtp-auth-proxy (SystemName)!\n"
|
|
||||||
unless $system_name;
|
|
||||||
warn "Insufficient configuration for smtp-auth-proxy (DomainName)!\n"
|
|
||||||
unless $domain_name;
|
|
||||||
warn "Insufficient configuration for smtp-auth-proxy (SMTPSmartHost)!\n"
|
|
||||||
unless $smarthost;
|
|
||||||
warn "Insufficient configuration for smtp-auth-proxy (Userid)!\n"
|
|
||||||
unless $name;
|
|
||||||
warn "Insufficient configuration for smtp-auth-proxy (Passwd)!\n"
|
|
||||||
unless $pass;
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
my $class = ($port == 465) ? 'Net::SMTP::SSL' : 'Net::SMTP';
|
|
||||||
my $smtp = $class->new($smarthost,
|
|
||||||
Hello => $helo,
|
|
||||||
Debug => $debug,
|
|
||||||
Port => $port,
|
|
||||||
);
|
|
||||||
unless ($smtp)
|
|
||||||
{
|
|
||||||
print "451 Upstream SMTP server not available\n";
|
|
||||||
warn "No SMTP connection to server $smarthost on port $port\n";
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
my @ehlo = $smtp->message;
|
|
||||||
|
|
||||||
if (grep { /STARTTLS$/ } @ehlo)
|
|
||||||
{
|
|
||||||
$smtp->command('STARTTLS');
|
|
||||||
my $response = $smtp->response;
|
|
||||||
my $status = $smtp->message;
|
|
||||||
use IO::Socket::SSL;
|
|
||||||
my $sslret = IO::Socket::SSL->start_SSL(
|
|
||||||
$smtp,
|
|
||||||
Timeout => 30,
|
|
||||||
SSL_startHandshake => 1
|
|
||||||
);
|
|
||||||
unless ($sslret) {
|
|
||||||
my $error = IO::Socket::SSL::errstr();
|
|
||||||
print("454 TLS not available due to temporary reason [$error]");
|
|
||||||
}
|
|
||||||
bless $smtp, 'Net::SMTP::SSL';
|
|
||||||
$smtp->reset;
|
|
||||||
$smtp->hello("${system_name}.${domain_name}");
|
|
||||||
@ehlo = $smtp->message;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($smtp->supports("AUTH"))
|
|
||||||
{
|
|
||||||
my $authenticated = 0;
|
|
||||||
my $blacklist = $self->get_property('Blacklist') || "";;
|
|
||||||
foreach my $method (split (/ /, ${*$smtp}{'net_smtp_esmtp'}->{"AUTH"}))
|
|
||||||
{
|
|
||||||
# Skip $method if in the blacklist
|
|
||||||
if ($blacklist =~ /$method/)
|
|
||||||
{
|
|
||||||
warn "Skipping blacklisted method $method\n" if $debug;
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
warn "Trying authentication method $method\n" if $debug;
|
|
||||||
# Only present one auth method at a time to NET::SMTP
|
|
||||||
{${*$smtp}{'net_smtp_esmtp'}->{"AUTH"} = $method;}
|
|
||||||
|
|
||||||
eval { $authenticated = $smtp->auth($name, $pass); };
|
|
||||||
|
|
||||||
if ($@)
|
|
||||||
{
|
|
||||||
warn "exception during authentication (with $method): $@\n";
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
last if $authenticated;
|
|
||||||
warn "SMTP authentication (with $method) with ISP server failed\n";
|
|
||||||
}
|
|
||||||
unless ($authenticated)
|
|
||||||
{
|
|
||||||
print "451 Could not auth to mail server\n";
|
|
||||||
warn "all SMTP authentication methods failed\n";
|
|
||||||
$smtp->quit;
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
warn "Upstream SMTP server does not support authentication\n";
|
|
||||||
}
|
|
||||||
print "220 ", $smtp->banner;
|
|
||||||
|
|
||||||
my $discard = <STDIN>; # Swallow EHLO
|
|
||||||
while (my $msg = shift @ehlo) {
|
|
||||||
my $sep = (@ehlo ? "-" : " ");
|
|
||||||
print "250$sep$msg";
|
|
||||||
}
|
|
||||||
|
|
||||||
die "can't fork: $!" unless defined ($kidpid = fork());
|
|
||||||
if ($kidpid)
|
|
||||||
{
|
|
||||||
print $smtp $_ while <STDIN>;
|
|
||||||
kill ("TERM" => $kidpid);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print while <$smtp>;
|
|
||||||
kill ("TERM" => getppid());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
1;
|
|
@@ -336,23 +336,20 @@ sub change_settings_access
|
|||||||
$db->set_prop('php',"status", "enabled" );
|
$db->set_prop('php',"status", "enabled" );
|
||||||
$db->set_prop('mariadb',"status", "enabled" );
|
$db->set_prop('mariadb',"status", "enabled" );
|
||||||
$db->set_prop('imp',"status", 'enabled' );
|
$db->set_prop('imp',"status", 'enabled' );
|
||||||
$db->set_prop('horde',"status", 'enabled' );
|
$db->set_prop('roundcube',"status", 'enabled' );
|
||||||
$db->set_prop('horde',"access", "public" );
|
$db->set_prop('roundcube',"access", "public" );
|
||||||
$db->set_prop('horde',"HttpsOnly", "yes" );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
elsif ( $webmail eq "localnetworkSSL" || $webmail eq "localnetwork" ) {
|
elsif ( $webmail eq "localnetworkSSL" || $webmail eq "localnetwork" ) {
|
||||||
$db->set_prop('php',"status", "enabled" );
|
$db->set_prop('php',"status", "enabled" );
|
||||||
$db->set_prop('mariadb',"status", "enabled" );
|
$db->set_prop('mariadb',"status", "enabled" );
|
||||||
$db->set_prop('imp',"status", 'enabled' );
|
$db->set_prop('imp',"status", 'enabled' );
|
||||||
$db->set_prop('horde',"status", 'enabled' );
|
$db->set_prop('roundcube',"status", 'enabled' );
|
||||||
$db->set_prop('horde',"access", "private" );
|
$db->set_prop('roundcube',"access", "private" );
|
||||||
$db->set_prop('horde',"HttpsOnly", "yes" );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
$db->set_prop('imp',"status", 'disabled' );
|
$db->set_prop('roundcube',"status", 'disabled' );
|
||||||
$db->set_prop('horde',"status", 'disabled' );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
unless ( system( "/sbin/e-smith/signal-event", "email-update" ) == 0 )
|
unless ( system( "/sbin/e-smith/signal-event", "email-update" ) == 0 )
|
||||||
@@ -558,19 +555,16 @@ sub get_current_webmail_status {
|
|||||||
# determine status of webmail
|
# determine status of webmail
|
||||||
my $WebmailStatus = "disabled";
|
my $WebmailStatus = "disabled";
|
||||||
|
|
||||||
my $IMPStatus = $db->get_prop('imp', 'status') || 'disabled';
|
my $RoundcubeStatus = $db->get_prop('roundcube', 'status') || 'disabled';
|
||||||
|
|
||||||
my $HordeStatus = $db->get_prop('horde', 'status') || 'disabled';
|
|
||||||
|
|
||||||
my $MysqlStatus = $db->get_prop('mariadb', 'status') || 'disabled';
|
my $MysqlStatus = $db->get_prop('mariadb', 'status') || 'disabled';
|
||||||
|
|
||||||
my $PHPStatus = $db->get_prop('php', 'status') || 'disabled';
|
my $PHPStatus = $db->get_prop('php', 'status') || 'disabled';
|
||||||
|
|
||||||
my $Networkaccess = $db->get_prop('horde','access') || 'disabled';
|
my $Networkaccess = $db->get_prop('roundcube','access') || 'disabled';
|
||||||
|
|
||||||
# all four components must be on for webmail to be working
|
# all four components must be on for webmail to be working
|
||||||
if ( ( $IMPStatus eq "enabled" )
|
if ( ( $RoundcubeStatus eq "enabled" )
|
||||||
&& ( $HordeStatus eq "enabled" )
|
|
||||||
&& ( $MysqlStatus eq "enabled" )
|
&& ( $MysqlStatus eq "enabled" )
|
||||||
&& ( $PHPStatus eq "enabled" )
|
&& ( $PHPStatus eq "enabled" )
|
||||||
&& ( $Networkaccess eq "public"))
|
&& ( $Networkaccess eq "public"))
|
||||||
@@ -578,8 +572,7 @@ sub get_current_webmail_status {
|
|||||||
$WebmailStatus = "enabledSSL" ;
|
$WebmailStatus = "enabledSSL" ;
|
||||||
}
|
}
|
||||||
|
|
||||||
elsif ( ( $IMPStatus eq "enabled" )
|
elsif ( ( $RoundcubeStatus eq "enabled" )
|
||||||
&& ( $HordeStatus eq "enabled" )
|
|
||||||
&& ( $MysqlStatus eq "enabled" )
|
&& ( $MysqlStatus eq "enabled" )
|
||||||
&& ( $PHPStatus eq "enabled" )
|
&& ( $PHPStatus eq "enabled" )
|
||||||
&& ( $Networkaccess eq "private" ))
|
&& ( $Networkaccess eq "private" ))
|
||||||
|
@@ -364,7 +364,7 @@ sub print_begin_page {
|
|||||||
my $key = $account->key();
|
my $key = $account->key();
|
||||||
push (@emailPseudonyms, $key) if ($type eq 'pseudonym');
|
push (@emailPseudonyms, $key) if ($type eq 'pseudonym');
|
||||||
}
|
}
|
||||||
my $urlprefix = $fm->build_cgi_params(uri_unescape($q->param('pseudonym')));
|
my $urlprefix = $fm->build_cgi_params(uri_unescape(scalar $q->param('pseudonym')));
|
||||||
print " <tr>\n <td colspan='2'>\n";
|
print " <tr>\n <td colspan='2'>\n";
|
||||||
print $q->p($q->a({href => "pseudonyms?$urlprefix&wherenext=Create", -class => "button-like"},
|
print $q->p($q->a({href => "pseudonyms?$urlprefix&wherenext=Create", -class => "button-like"},
|
||||||
$fm->localise("CLICK_TO_CREATE")));
|
$fm->localise("CLICK_TO_CREATE")));
|
||||||
|
@@ -4,7 +4,7 @@ Summary: smeserver server and gateway - email module
|
|||||||
%define name smeserver-email
|
%define name smeserver-email
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
%define version 11.0.0
|
%define version 11.0.0
|
||||||
%define release 6
|
%define release 12
|
||||||
Version: %{version}
|
Version: %{version}
|
||||||
Release: %{release}%{?dist}
|
Release: %{release}%{?dist}
|
||||||
License: GPL
|
License: GPL
|
||||||
@@ -25,7 +25,6 @@ Requires: perl(Net::SMTP)
|
|||||||
Requires: perl(Net::SMTP::SSL)
|
Requires: perl(Net::SMTP::SSL)
|
||||||
Requires: perl(Authen::SASL)
|
Requires: perl(Authen::SASL)
|
||||||
Requires: perl(Net::Server) >= 0.85
|
Requires: perl(Net::Server) >= 0.85
|
||||||
Requires: runit
|
|
||||||
Requires: smeserver-formmagick >= 1.4.0-12
|
Requires: smeserver-formmagick >= 1.4.0-12
|
||||||
Obsoletes: e-smith-smtp-authentication
|
Obsoletes: e-smith-smtp-authentication
|
||||||
Obsoletes: e-smith-securemail
|
Obsoletes: e-smith-securemail
|
||||||
@@ -77,6 +76,27 @@ fi
|
|||||||
smeserver server and gateway software - email module.
|
smeserver server and gateway software - email module.
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Feb 21 2025 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-12.sme
|
||||||
|
- remove /usr/local/sbin/smtp-auth-proxy.pl [SME: 12939]
|
||||||
|
|
||||||
|
* Wed Feb 12 2025 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-11.sme
|
||||||
|
- fix typo in webmail settings for roundcube [SME: 12743]
|
||||||
|
|
||||||
|
* Wed Jan 08 2025 Brian Read <brianr@koozali.org> 11.0.0-10.sme
|
||||||
|
- Update release due to finger trouble [SME: 12863]
|
||||||
|
|
||||||
|
* Wed Jan 08 2025 Brian Read <brianr@koozali.org> 11.0.0-9.sme
|
||||||
|
- Revert change - reload should be in smeserver-postfix [SME: 12863]
|
||||||
|
|
||||||
|
* Tue Jan 07 2025 Brian Read <brianr@koozali.org> 11.0.0-8.sme
|
||||||
|
- reload-or-restart postfix after pseudonym change [SME: 12863]
|
||||||
|
|
||||||
|
* Mon Dec 30 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-7.sme
|
||||||
|
- fix CGI::param called in list context [SME: 12789]
|
||||||
|
- update webmail settings for roundcube [SME: 12743]
|
||||||
|
- remove requires runit [SME: 12566]
|
||||||
|
- move action pseudonym-cleanup and migrate 10AdminEmail from smeserver-mini-qmail [SME: 12808]
|
||||||
|
|
||||||
* Wed Apr 17 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-6.sme
|
* Wed Apr 17 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-6.sme
|
||||||
- change temp dir from /var/lock to /run/lock [SME: 12620]
|
- change temp dir from /var/lock to /run/lock [SME: 12620]
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user