* Sun Nov 17 2024 <jpp@koozali.org> 1.0-2.sme

- listen only via sockets
- use both unix user and virtual users
- groups and pseudonyms implemented in virtual maps
- support smarthost with and without auth
- support global and per domain delegated mail server
- support ssl
- uses qmail - recipient delimiter in left part of email.
- all domains set as local domains in mydestination
- message_size_limit
- local and remote concurency limit
This commit is contained in:
2024-11-17 22:25:49 -05:00
parent 3e1adb2110
commit aa8479eaa9
38 changed files with 558 additions and 99 deletions

View File

@@ -13,35 +13,46 @@ foreach (qw(
master.cf
transport
virtual
))
sasl_passwd
))
{
templates2events("/var/qmail/control/$_", qw(
templates2events("/etc/postfix/$_", qw(
console-save
bootstrap-console-save
domain-create
domain-delete
ip-change
email-update
group-create
group-modify
group-delete
host-create
host-delete
host-modify
post-upgrade
smeserver-postfix-update
user-create
user-modify
user-delete
user-modify-admin
));
}
#--------------------------------------------------
# actions for ssl-update event:
# write config files and create startup link
#--------------------------------------------------
$event = "ssl-update";
templates2events("/etc/postfix/ssl/postfix.pem", $event);
#--------------------------------------------------
# actions for console-save event:
# write config files and create startup link
#--------------------------------------------------
$event = "console-save";
# If qmail-send is running, it will receive the SIGHUP and ignore the
# start command. If it is not running then the signal will be ignored
# and qmail-send will read its new configuration files anyway.
safe_symlink("sighup", "root/etc/e-smith/events/$event/services2adjust/postfix");
templates2events("/etc/postfix/ssl/postfix.pem", $event);
safe_symlink("reload", "root/etc/e-smith/events/$event/services2adjust/postfix");
#--------------------------------------------------
# actions for bootstrap-console-save event:
@@ -49,11 +60,9 @@ safe_symlink("sighup", "root/etc/e-smith/events/$event/services2adjust/postfix")
#--------------------------------------------------
$event = "bootstrap-console-save";
# TODO alternative ? event_link("pseudonym-cleanup", $event, "03");
# TODO alternative ? event_link("qmail-update-group", $event, "20");
# TODO alternative ? event_link("qmail-update-user", $event, "55");
# TODO alternative ? templates2events("/var/qmail/users/assign", $event);
# TODO alternative ? safe_symlink("/var/qmail/bin/qmail-newu", "root/etc/e-smith/events/$event/S55email-assign");
event_link('conf-postfix', $event, '04');
templates2events("/etc/postfix/ssl/postfix.pem", $event);
#--------------------------------------------------
# actions for domain-create event:
@@ -61,7 +70,17 @@ $event = "bootstrap-console-save";
#--------------------------------------------------
$event = "domain-create";
safe_symlink("sighup", "root/etc/e-smith/events/$event/services2adjust/postfix");
templates2events("/etc/postfix/ssl/postfix.pem", $event);
safe_symlink("reload", "root/etc/e-smith/events/$event/services2adjust/postfix");
#--------------------------------------------------
# actions for domain-modify event:
# rewrite config files and restart server
#--------------------------------------------------
$event = "domain-modify";
templates2events("/etc/postfix/ssl/postfix.pem", $event);
safe_symlink("reload", "root/etc/e-smith/events/$event/services2adjust/postfix");
#--------------------------------------------------
# actions for domain-delete event:
@@ -69,7 +88,8 @@ safe_symlink("sighup", "root/etc/e-smith/events/$event/services2adjust/postfix")
#--------------------------------------------------
$event = "domain-delete";
safe_symlink("sighup", "root/etc/e-smith/events/$event/services2adjust/postfix");
templates2events("/etc/postfix/ssl/postfix.pem", $event);
safe_symlink("reload", "root/etc/e-smith/events/$event/services2adjust/postfix");
#--------------------------------------------------
# actions for email-update event:
@@ -80,10 +100,9 @@ safe_symlink("sighup", "root/etc/e-smith/events/$event/services2adjust/postfix")
#--------------------------------------------------
$event = "email-update";
templates2events("/etc/postfix/ssl/postfix.pem", $event);
# TODO alternative ? event_link("qmail-update-user", $event, "03");
# TODO alternative ? event_link("pseudonym-cleanup", $event, "30");
safe_symlink("sighup", "root/etc/e-smith/events/$event/services2adjust/postfix");
safe_symlink("reload", "root/etc/e-smith/events/$event/services2adjust/postfix");
safe_symlink("adjust", "root/etc/e-smith/events/$event/services2adjust/masq");
safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/smtp-auth-proxy");
@@ -92,33 +111,27 @@ safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/smtp-aut
#--------------------------------------------------
$event = "group-create";
# TODO alternative ? event_link("pseudonym-cleanup", $event, "03");
# TODO alternative ? event_link("qmail-update-group", $event, "20");
# TODO alternative ? templates2events("/var/qmail/users/assign", $event);
# TODO alternative ? safe_symlink("/var/qmail/bin/qmail-newu", "root/etc/e-smith/events/$event/S55email-assign");
safe_symlink("sighup", "root/etc/e-smith/events/$event/services2adjust/postfix");
safe_symlink("reload", "root/etc/e-smith/events/$event/services2adjust/postfix");
# TODO need to reload postfix and expand /etc/postfix/virtual
#--------------------------------------------------
# actions for group-delete event:
#--------------------------------------------------
$event = "group-delete";
# TODO alternative ? event_link("pseudonym-cleanup", $event, "03");
# TODO alternative ? event_link("qmail-delete-group", $event, "20");
# TODO alternative ? templates2events("/var/qmail/users/assign", $event);
# TODO alternative ? safe_symlink("/var/qmail/bin/qmail-newu", "root/etc/e-smith/events/$event/S55email-assign");
safe_symlink("sighup", "root/etc/e-smith/events/$event/services2adjust/postfix");
safe_symlink("reload", "root/etc/e-smith/events/$event/services2adjust/postfix");
# TODO need to reload postfix and expand /etc/postfix/virtual
#--------------------------------------------------
# actions for group-modify event:
#--------------------------------------------------
$event = "group-modify";
# TODO alternative ? event_link("pseudonym-cleanup", $event, "03");
# TODO alternative ? event_link("qmail-update-group", $event, "20");
# TODO alternative ? templates2events("/var/qmail/users/assign", $event);
# TODO alternative ? safe_symlink("/var/qmail/bin/qmail-newu", "root/etc/e-smith/events/$event/S55email-assign");
safe_symlink("sighup", "root/etc/e-smith/events/$event/services2adjust/postfix");
safe_symlink("reload", "root/etc/e-smith/events/$event/services2adjust/postfix");
#--------------------------------------------------
# actions for user-create event:
@@ -126,7 +139,7 @@ safe_symlink("sighup", "root/etc/e-smith/events/$event/services2adjust/postfix")
$event = "user-create";
# TODO alternative ? event_link("qmail-update-user", $event, "20");
# TODO alternative ? event_link("qmail-update-group", $event, "20");
safe_symlink("reload", "root/etc/e-smith/events/$event/services2adjust/postfix");
#--------------------------------------------------
# actions for user-modify event
@@ -134,7 +147,7 @@ $event = "user-create";
$event = "user-modify";
# TODO alternative ? event_link("qmail-update-user", $event, "20");
# TODO alternative ? event_link("qmail-update-group", $event, "20");
safe_symlink("reload", "root/etc/e-smith/events/$event/services2adjust/postfix");
#--------------------------------------------------
# actions for user-modify-admin event
@@ -142,13 +155,14 @@ $event = "user-modify";
$event = "user-modify-admin";
# TODO alternative ? event_link("qmail-update-user", $event, "20");
safe_symlink("reload", "root/etc/e-smith/events/$event/services2adjust/postfix");
#--------------------------------------------------
# actions for user-delete event
#--------------------------------------------------
$event = "user-delete";
# TODO alternative ? event_link("qmail-update-group", $event, "25");
safe_symlink("reload", "root/etc/e-smith/events/$event/services2adjust/postfix");
#--------------------------------------------------
# actions for ip-up event:
@@ -162,7 +176,8 @@ $event = "ip-up";
#--------------------------------------------------
$event = "ip-change";
safe_symlink("sighup", "root/etc/e-smith/events/$event/services2adjust/postfix");
templates2events("/etc/postfix/ssl/postfix.pem", $event);
safe_symlink("reload", "root/etc/e-smith/events/$event/services2adjust/postfix");
@@ -181,13 +196,17 @@ foreach my $file (qw(
{
templates2events( $file, $event );
};
templates2events("/etc/postfix/ssl/postfix.pem", $event);
#action needed in case we have a systemd unit
event_link('conf-postfix', $event, '04');
event_link('systemd-default', $event, '10');
event_link('systemd-reload', $event, '50');
safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/postfix");
#services we might need to restart
#event_services($event, 'xxxx' => 'restart', 'yyyy' => 'restart');
safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/qpsmtpd");
safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/sqpsmtpd");
safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/uqpsmtpd");
#Backup files
# backup_includes("smeserver-postfix", qw(