From 98f8f4de86129f52b5c983d8f16ee310bd3b5b24 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Isma=C3=ABl=20Bouya?= Date: Sun, 17 Nov 2019 14:47:35 +0100 Subject: [PATCH] Add cleanup cron job for dovecot --- modules/private/mail/dovecot.nix | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/modules/private/mail/dovecot.nix b/modules/private/mail/dovecot.nix index 6220da2..6c3b4b8 100644 --- a/modules/private/mail/dovecot.nix +++ b/modules/private/mail/dovecot.nix @@ -37,11 +37,13 @@ in base = ${myconfig.env.mail.dovecot.ldap.base} scope = subtree - user_filter = ${myconfig.env.mail.dovecot.ldap.filter} pass_filter = ${myconfig.env.mail.dovecot.ldap.filter} + pass_attrs = ${myconfig.env.mail.dovecot.ldap.pass_attrs} user_attrs = ${myconfig.env.mail.dovecot.ldap.user_attrs} - pass_attrs = ${myconfig.env.mail.dovecot.ldap.pass_attrs} + user_filter = ${myconfig.env.mail.dovecot.ldap.filter} + iterate_attrs = ${myconfig.env.mail.dovecot.ldap.iterate_attrs} + iterate_filter = ${myconfig.env.mail.dovecot.ldap.iterate_filter} ''; } ]; @@ -185,8 +187,8 @@ in args = ${config.secrets.fullPaths."dovecot/ldap"} } userdb { - driver = static - args = user=%u uid=vhost gid=vhost home=/var/lib/vhost/%d/%n/ mail=mbox:~/Mail:INBOX=~/Mail/Inbox:INDEX=~/.imap + driver = ldap + args = ${config.secrets.fullPaths."dovecot/ldap"} } '' @@ -239,6 +241,16 @@ in ''; }; + services.cron.systemCronJobs = let + cron_script = pkgs.writeScriptBin "cleanup-imap-folders" '' + ${pkgs.dovecot}/bin/doveadm expunge -A MAILBOX "Backup/*" NOT UID 1:256 + ${pkgs.dovecot}/bin/doveadm expunge -A MAILBOX Junk SEEN NOT FLAGGED BEFORE 4w + ${pkgs.dovecot}/bin/doveadm search -A MAILBOX Trash NOT FLAGGED BEFORE 4w + ''; + in + [ + "0 2 * * * root ${cron_script}/bin/cleanup-imap-folders" + ]; security.acme.certs."mail" = { postRun = '' systemctl restart dovecot2.service -- 2.41.0