X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FConfig%2FNix.git;a=blobdiff_plain;f=modules%2Fprivate%2Fmail%2Fpostfix.nix;h=fcb0ce2305d82d522d32ab70e92ce86374f3053a;hp=1386f850a8ddf6fc2da738d75cf6722e2e7983f0;hb=dc6d3af99aba4a81a2578cd10ccbc63603381ac5;hpb=ec9b656476d4af2784aea29b846bead85dc46e16 diff --git a/modules/private/mail/postfix.nix b/modules/private/mail/postfix.nix index 1386f85..fcb0ce2 100644 --- a/modules/private/mail/postfix.nix +++ b/modules/private/mail/postfix.nix @@ -249,10 +249,19 @@ # its checks "per user" (milter is not yet dispatched to # users), so we wrap dovecot-lda inside rspamc per recipient # here. - dovecot_exe = "${pkgs.dovecot}/libexec/dovecot/dovecot-lda -f \${sender} -a \${original_recipient} -d \${user}@\${nexthop}"; + rspamc_dovecot = pkgs.writeScriptBin "rspamc_dovecot" '' + #! ${pkgs.stdenv.shell} + sender="$1" + original_recipient="$2" + user="$3" + + ${pkgs.coreutils}/bin/cat - | \ + (${pkgs.rspamd}/bin/rspamc -h ${config.myServices.mail.rspamd.sockets.worker-controller} -c bayes -d "$user" --mime || true) | \ + ${pkgs.dovecot}/libexec/dovecot/dovecot-lda -f "$sender" -a "$original_recipient" -d "$user" + ''; in [ "flags=DRhu" "user=vhost:vhost" - "argv=${pkgs.rspamd}/bin/rspamc -h ${config.myServices.mail.rspamd.sockets.worker-controller} -c bayes -d \${user}@\${nexthop} --mime --exec {${dovecot_exe}}" + "argv=${rspamc_dovecot}/bin/rspamc_dovecot \${sender} \${original_recipient} \${user}@\${nexthop}" ]; }; };