Dovecot: Mailbox config + hierarchy separator + FS layout.

- Factored mailbox config into its own option.
- Added hierarchy separator option.
- Added option for using FS layout.
This commit is contained in:
Philipp Dörfler 2018-02-02 20:37:29 +00:00
parent 82823a4085
commit 43d36d9b76
2 changed files with 66 additions and 23 deletions

View file

@ -21,11 +21,13 @@ with (import ./common.nix { inherit config lib; });
let
cfg = config.mailserver;
# maildir in format "/${domain}/${user}"
dovecot_maildir = "maildir:${cfg.mailDirectory}/%d/%n";
maildirLayoutAppendix = lib.optionalString cfg.useFsLayout ":LAYOUT=fs";
dovecotVersion = builtins.fromJSON
(builtins.readFile (pkgs.callPackage ./dovecot-version.nix {}));
# maildir in format "/${domain}/${user}"
dovecotMaildir = "maildir:${cfg.mailDirectory}/%d/%n${maildirLayoutAppendix}";
in
{
config = with cfg; lib.mkIf enable {
@ -37,7 +39,7 @@ in
enableQuota = true;
mailGroup = vmailGroupName;
mailUser = vmailUserName;
mailLocation = dovecot_maildir;
mailLocation = dovecotMaildir;
sslServerCert = certificatePath;
sslServerKey = keyPath;
enableLmtp = true;
@ -55,6 +57,8 @@ in
'';
};
mailboxes = cfg.mailboxes;
extraConfig = ''
#Extra Config
${lib.optionalString debug ''
@ -102,27 +106,8 @@ in
auth_mechanisms = plain login
namespace inbox {
separator = ${cfg.hierarchySeparator}
inbox = yes
mailbox "Trash" {
auto = no
special_use = \Trash
}
mailbox "Junk" {
auto = subscribe
special_use = \Junk
}
mailbox "Drafts" {
auto = subscribe
special_use = \Drafts
}
mailbox "Sent" {
auto = subscribe
special_use = \Sent
}
}
plugin {