diff --git a/nixos-mailserver/dovecot.nix b/nixos-mailserver/dovecot.nix index cc0eb91..1765b00 100644 --- a/nixos-mailserver/dovecot.nix +++ b/nixos-mailserver/dovecot.nix @@ -70,7 +70,7 @@ let } protocol imap { - mail_plugins = $mail_plugins imap_sieve + mail_plugins = $mail_plugins } imap_idle_notify_interval = 29 mins @@ -99,22 +99,6 @@ let } prefix = } - - plugin { - sieve_after = ${(pkgs.callPackage ./sieve-after.nix {}) } - sieve_plugins = sieve_imapsieve sieve_extprograms - # From elsewhere to Spam folder - imapsieve_mailbox1_name = Junk - imapsieve_mailbox1_causes = COPY - imapsieve_mailbox1_before = file:${(pkgs.callPackage ./sieve-report-spam-ham.nix {})}/report-spam.sieve - # From Spam folder to elsewhere - imapsieve_mailbox2_name = * - imapsieve_mailbox2_from = Junk - imapsieve_mailbox2_causes = COPY - imapsieve_mailbox2_before = file:${(pkgs.callPackage ./sieve-report-spam-ham.nix {})}/report-ham.sieve - sieve_pipe_bin_dir = ${(pkgs.callPackage ./sieve-pipe-bin-dir.nix {})} - sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment - } ''; in { diff --git a/nixos-mailserver/sieve-after.nix b/nixos-mailserver/sieve-after.nix deleted file mode 100644 index c8add5a..0000000 --- a/nixos-mailserver/sieve-after.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ stdenv, dovecot_pigeonhole}: - -stdenv.mkDerivation rec { - name = "sieve-after"; - - src = ./sieve-after; - - phases = [ "copyPhase" "compilePhase" ]; - - copyPhase = '' - cd $src - mkdir $out - cp -Rv $src/. $out/ - find $out -type d -exec chmod -c 0755 {} \; - set +x - ''; - compilePhase = '' - find $out -iname '*.sieve' -print0 | xargs -t -0 -n1 ${dovecot_pigeonhole}/bin/sievec -c /dev/null - ''; -} diff --git a/nixos-mailserver/sieve-after/junk-folder.sieve b/nixos-mailserver/sieve-after/junk-folder.sieve deleted file mode 100644 index d81b5de..0000000 --- a/nixos-mailserver/sieve-after/junk-folder.sieve +++ /dev/null @@ -1,6 +0,0 @@ -require ["fileinto","mailbox"]; - -if header :contains "X-Spam" "Yes" { - fileinto :create "Junk"; - stop; -} diff --git a/nixos-mailserver/sieve-pipe-bin-dir.nix b/nixos-mailserver/sieve-pipe-bin-dir.nix deleted file mode 100644 index fdf2e3d..0000000 --- a/nixos-mailserver/sieve-pipe-bin-dir.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ stdenv}: - -stdenv.mkDerivation rec { - name = "sieve-pipe-bin-dir"; - - src = ./sieve-pipe-bin-dir; - - phases = [ "copyPhase" "fixupPhase" ]; - - copyPhase = '' - mkdir $out - cp -Rv $src/. $out/ - ''; -} diff --git a/nixos-mailserver/sieve-pipe-bin-dir/learn-ham.sh b/nixos-mailserver/sieve-pipe-bin-dir/learn-ham.sh deleted file mode 100644 index 6e4c0b1..0000000 --- a/nixos-mailserver/sieve-pipe-bin-dir/learn-ham.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -exec /run/current-system/sw/bin/rspamc -h /run/rspamd/worker-controller.socket learn_ham diff --git a/nixos-mailserver/sieve-pipe-bin-dir/learn-spam.sh b/nixos-mailserver/sieve-pipe-bin-dir/learn-spam.sh deleted file mode 100644 index 18f0dba..0000000 --- a/nixos-mailserver/sieve-pipe-bin-dir/learn-spam.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -exec /run/current-system/sw/bin/rspamc -h /run/rspamd/worker-controller.socket learn_spam diff --git a/nixos-mailserver/sieve-report-spam-ham.nix b/nixos-mailserver/sieve-report-spam-ham.nix deleted file mode 100644 index d8e7e93..0000000 --- a/nixos-mailserver/sieve-report-spam-ham.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ stdenv, dovecot_pigeonhole}: - -stdenv.mkDerivation rec { - name = "sieve-report-spam-ham"; - - src = ./sieve-report-spam-ham; - - phases = [ "copyPhase" "compilePhase" ]; - - copyPhase = '' - mkdir $out - cp -Rv $src/. $out/ - find $out -type d -exec chmod -c 0755 {} \; - set +x - ''; - - # Yeah, need a specific dovecot.conf to enable the necessary plugins... - # taking the one used by the dovecot that actually executes the sieve scripts should - # work as well, but passing it through isn't worth my time. - compilePhase = '' - dc=$(pwd)/dovecot.conf - cat > $dc <<-EOF - plugin { - sieve_plugins = sieve_imapsieve sieve_extprograms - sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment - } - EOF - find $out -iname '*.sieve' -print0 | xargs -t -0 -n1 ${dovecot_pigeonhole}/bin/sievec -c $dc - ''; -} diff --git a/nixos-mailserver/sieve-report-spam-ham/report-ham.sieve b/nixos-mailserver/sieve-report-spam-ham/report-ham.sieve deleted file mode 100644 index 6217a90..0000000 --- a/nixos-mailserver/sieve-report-spam-ham/report-ham.sieve +++ /dev/null @@ -1,15 +0,0 @@ -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 "learn-ham.sh" [ "${username}" ]; diff --git a/nixos-mailserver/sieve-report-spam-ham/report-spam.sieve b/nixos-mailserver/sieve-report-spam-ham/report-spam.sieve deleted file mode 100644 index 9d4c74b..0000000 --- a/nixos-mailserver/sieve-report-spam-ham/report-spam.sieve +++ /dev/null @@ -1,7 +0,0 @@ -require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"]; - -if environment :matches "imap.user" "*" { - set "username" "${1}"; -} - -pipe :copy "learn-spam.sh" [ "${username}" ];