finish up dovecot configuration

also factor out users into own file
This commit is contained in:
Robin Raymond 2017-08-12 12:28:46 +02:00
parent 4fdace2538
commit 1d53a88a21
5 changed files with 103 additions and 33 deletions

View file

@ -14,13 +14,71 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>
{ vmail_group_name, vmail_user_name, dovecot_maildir, enable_imap, enable_pop3,
{ vmail_group_name, vmail_user_name, mail_dir, enable_imap, enable_pop3,
... }:
let
# maildir in format "/${domain}/${user}/"
dovecot_maildir = "maildir:${mail_dir}/%d/%n/";
in
{
enable = true;
enableImap = enable_imap;
enablePop3 = enable_pop3;
mailGroup = vmail_group_name;
mailUser = vmail_user_name;
mailLocation = dovecot_maildir; # maildir in format "/${domain}/${user}/"
mailLocation = dovecot_maildir;
#sslServerCert = "/etc/nixos/cert/${cert_file}"; // TODO: Define
#sslServerKey = "/etc/nixos/cert/${key_file}"; // TODO: Define
enableLmtp = true;
extraConfig = ''
#Extra Config
mail_access_groups = ${vmail_group_name}
ssl = required
service lmtp {
unix_listener /var/lib/postfix/queue/private/dovecot-lmtp {
group = postfix
mode = 0600
user = postfix # TODO: < make variable
}
}
service auth {
unix_listener /var/lib/postfix/queue/private/auth {
mode = 0660
user = postfix # TODO: < make variable
group = postfix # TODO: < make variable
}
}
auth_mechanisms = plain login
namespace inbox {
#prefix = INBOX.
# the namespace prefix isn't added again to the mailbox names.
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
}
}
'';
}