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}
'';
}
];
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"}
}
''
'';
};
+ 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