diff options
author | Jesse Luehrs <doy@tozt.net> | 2020-04-25 16:30:38 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2020-04-25 16:30:38 -0400 |
commit | c24974dc397a1a5ac8cb7612aef596443e4d8542 (patch) | |
tree | d2bcb921caec1921d2ebb0ab86af299630e47b39 /modules/mail | |
parent | b321a94b743f0002d1d1d839e935b9d8b6d014d9 (diff) | |
download | puppet-tozt-c24974dc397a1a5ac8cb7612aef596443e4d8542.tar.gz puppet-tozt-c24974dc397a1a5ac8cb7612aef596443e4d8542.zip |
add spam learning
Diffstat (limited to 'modules/mail')
-rw-r--r-- | modules/mail/files/learn_spam | 24 | ||||
-rw-r--r-- | modules/mail/manifests/mailu.pp | 8 |
2 files changed, 32 insertions, 0 deletions
diff --git a/modules/mail/files/learn_spam b/modules/mail/files/learn_spam new file mode 100644 index 0000000..5bdbd0d --- /dev/null +++ b/modules/mail/files/learn_spam @@ -0,0 +1,24 @@ +#!/bin/bash +set -eu +set -o pipefail + +cd /media/persistent +mkdir -p tmp +dir=$(mktemp -d -p /media/persistent/tmp learnspam.XXXXXXXX) +trap 'rm -rf $dir' EXIT + +ham="${dir}/ham" +spam="${dir}/spam" +mkdir "$ham" "$spam" + +find /media/persistent/mail -type f -mtime -90 | grep /cur/ | grep -v Sent | grep -v Junk | xargs -i ln {} "${dir}/ham" +find /media/persistent/mail -type f -mtime -90 | grep /cur/ | grep -v Sent | grep Junk | xargs -i ln {} "${dir}/spam" + +docker-compose exec imap rspamc -h antispam:11334 -P mailu learn_ham "$ham" +docker-compose exec imap rspamc -h antispam:11334 -P mailu learn_spam "$spam" + +docker-compose exec imap rspamc -h antispam:11334 -P mailu -f 13 fuzzy_add "$ham" +docker-compose exec imap rspamc -h antispam:11334 -P mailu -f 11 fuzzy_del "$ham" + +docker-compose exec imap rspamc -h antispam:11334 -P mailu -f 11 fuzzy_add "$spam" +docker-compose exec imap rspamc -h antispam:11334 -P mailu -f 13 fuzzy_del "$spam" diff --git a/modules/mail/manifests/mailu.pp b/modules/mail/manifests/mailu.pp index 4f7a348..82d596c 100644 --- a/modules/mail/manifests/mailu.pp +++ b/modules/mail/manifests/mailu.pp @@ -1,5 +1,6 @@ class mail::mailu { include mail::persistent + include cron include docker include haveged @@ -17,6 +18,13 @@ class mail::mailu { "/media/persistent/.env.common": source => "puppet:///modules/mail/mailu.env", require => Class["mail::persistent"]; + '/etc/cron.daily/learn_spam': + source => 'puppet:///modules/mail/learn_spam', + mode => '0755', + require => [ + Service['mailu'], + Class['cron'], + ]; } exec { "generate mailu secret key": |