diff --git a/modules/mail.nix b/modules/mail/default.nix similarity index 95% rename from modules/mail.nix rename to modules/mail/default.nix index 9a3560e..9713b99 100644 --- a/modules/mail.nix +++ b/modules/mail/default.nix @@ -53,6 +53,18 @@ in ''; mode = "0555"; }; + "dovecot/sieve/report-spam.sieve" = { + source = ./report-spam.sieve; + user = "dovecot2"; + group = "dovecot2"; + mode = "0544"; + }; + "dovecot/sieve/report-ham.sieve" = { + source = ./report-ham.sieve; + user = "dovecot2"; + group = "dovecot2"; + mode = "0544"; + }; }; services = { @@ -229,13 +241,13 @@ in # Spam: From elsewhere to Spam folder or flag changed in Spam folder imapsieve_mailbox1_name = Spam imapsieve_mailbox1_causes = COPY APPEND FLAG - imapsieve_mailbox1_before = file:/var/lib/dovecot/imap_sieve/report-spam.sieve + imapsieve_mailbox1_before = file:/etc/dovecot/sieve/report-spam.sieve # Ham: From Spam folder to elsewhere imapsieve_mailbox2_name = * imapsieve_mailbox2_from = Spam imapsieve_mailbox2_causes = COPY - imapsieve_mailbox1_before = file:/var/lib/dovecot/imap_sieve/report-ham.sieve + imapsieve_mailbox2_before = file:/etc/dovecot/sieve/report-ham.sieve } ''; }; diff --git a/modules/mail/report-ham.sieve b/modules/mail/report-ham.sieve new file mode 100755 index 0000000..a9d30cf --- /dev/null +++ b/modules/mail/report-ham.sieve @@ -0,0 +1,15 @@ +require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"]; + +if environment :matches "imap.mailbox" "*" { + set "mailbox" "${1}"; +} + +if string "${mailbox}" "Trash" { + stop; +} + +if environment :matches "imap.user" "*" { + set "username" "${1}"; +} + +pipe :copy "sa-learn-ham.sh" [ "${username}" ]; diff --git a/modules/mail/report-spam.sieve b/modules/mail/report-spam.sieve new file mode 100755 index 0000000..4024b7a --- /dev/null +++ b/modules/mail/report-spam.sieve @@ -0,0 +1,7 @@ +require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"]; + +if environment :matches "imap.user" "*" { + set "username" "${1}"; +} + +pipe :copy "sa-learn-spam.sh" [ "${username}" ]; \ No newline at end of file