Add a systemd timer to learn spam
This commit is contained in:
parent
3fc925f27d
commit
2a6cef6a29
|
@ -10,6 +10,9 @@ let
|
|||
});
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
(import "${custom.inputs.self}/modules/telegram-notifications" { inherit custom; })
|
||||
];
|
||||
environment.systemPackages = [
|
||||
mailserver-setup
|
||||
];
|
||||
|
@ -31,7 +34,6 @@ in
|
|||
volumes = [
|
||||
"/etc/localtime:/etc/localtime:ro"
|
||||
"/var/lib/acme/mail.zweili.org:/etc/letsencrypt/live/mail.zweili.org:ro"
|
||||
"${custom.inputs.self}/modules/docker-mailserver/sa-learn:/etc/cron.d/sa-learn"
|
||||
];
|
||||
extraOptions = [
|
||||
''--mount=type=volume,source=maildata,target=/var/mail,volume-driver=local,volume-opt=type=nfs,volume-opt=device=:/server_data/docker-mailserver/maildata,"volume-opt=o=addr=10.7.89.108,rw,nfsvers=4.0,nolock,hard,noatime"''
|
||||
|
@ -44,4 +46,30 @@ in
|
|||
];
|
||||
};
|
||||
};
|
||||
systemd.timers."mailserver-sa-learn" = {
|
||||
wantedBy = [ "timers.target" ];
|
||||
partOf = [ "mailserver-sa-learn.service" ];
|
||||
timerConfig = {
|
||||
OnCalendar = "daily";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services."mailserver-sa-learn" = {
|
||||
serviceConfig = {
|
||||
User = "root";
|
||||
Type = "oneshot";
|
||||
};
|
||||
onFailure = [ "unit-status-telegram@%n.service" ];
|
||||
script = ''
|
||||
# learn spam
|
||||
${pkgs.docker}/bin/docker exec mailserver sa-learn --spam /var/mail/2li.ch/*/.Junk --dbpath /var/mail-state/lib-amavis/.spamassassin
|
||||
${pkgs.docker}/bin/docker exec mailserver sa-learn --spam /var/mail/zweili.ch/*/.Junk --dbpath /var/mail-state/lib-amavis/.spamassassin
|
||||
# ham: archive directories
|
||||
${pkgs.docker}/bin/docker exec mailserver sa-learn --ham /var/mail/2li.ch/*/.Archive* --dbpath /var/mail-state/lib-amavis/.spamassassin
|
||||
${pkgs.docker}/bin/docker exec mailserver sa-learn --ham /var/mail/zweili.ch/*/.Archive* --dbpath /var/mail-state/lib-amavis/.spamassassin
|
||||
# ham: inbox subdirectories
|
||||
${pkgs.docker}/bin/docker exec mailserver sa-learn --ham /var/mail/2li.ch/*/cur* --dbpath /var/mail-state/lib-amavis/.spamassassin
|
||||
${pkgs.docker}/bin/docker exec mailserver sa-learn --ham /var/mail/zweili.ch/*/cur* --dbpath /var/mail-state/lib-amavis/.spamassassin
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
# This assumes you're having `environment: ONE_DIR=1` in the env-mailserver,
|
||||
# with a consolidated config in `/var/mail-state`
|
||||
#
|
||||
# m h dom mon dow user command
|
||||
#
|
||||
# Everyday 3:00AM, learn spam from all users of a domain
|
||||
# spam: junk directory
|
||||
0 8 * * * root sa-learn --spam /var/mail/2li.ch/*/.Junk --dbpath /var/mail-state/lib-amavis/.spamassassin
|
||||
15 8 * * * root sa-learn --spam /var/mail/zweili.ch/*/.Junk --dbpath /var/mail-state/lib-amavis/.spamassassin
|
||||
# ham: archive directories
|
||||
30 8 * * * root sa-learn --ham /var/mail/2li.ch/*/.Archive* --dbpath /var/mail-state/lib-amavis/.spamassassin
|
||||
45 8 * * * root sa-learn --ham /var/mail/zweili.ch/*/.Archive* --dbpath /var/mail-state/lib-amavis/.spamassassin
|
||||
# ham: inbox subdirectories
|
||||
00 9 * * * root sa-learn --ham /var/mail/2li.ch/*/cur* --dbpath /var/mail-state/lib-amavis/.spamassassin
|
||||
15 9 * * * root sa-learn --ham /var/mail/zweili.ch/*/cur* --dbpath /var/mail-state/lib-amavis/.spamassassin
|
Loading…
Reference in New Issue