blob: c53128520812c20832f834509bfe90812bf2527a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
{ pkgs, config, ... }:
let
maildir = "${config.users.users.qyliss.home}/mail";
mbsyncrc = pkgs.substituteAll { inherit maildir; src = ./mbsyncrc.in; };
in
{
imports = [ ./mutt ./notmuch ./postfix ./rss2email ];
environment.systemPackages = with pkgs; [ isync ];
systemd.services.mail = {
path = with pkgs; [ coreutils findutils isync notmuch sudo ];
serviceConfig.Type = "oneshot";
after = [ "network-online.target" ];
script = "sudo -u qyliss-mail mbsync -a -V -c ${mbsyncrc}";
postStart = ''
find "${maildir}" \! -name .mbsyncstate* \
\( \( \! -user qyliss -o \! -group qyliss \) , \
-type f \! -perm 660 -exec chmod 0660 '{}' \; , \
-type d \! -perm 770 -exec chmod 0770 '{}' \; \)
sudo -u qyliss \
env NOTMUCH_CONFIG=/etc/xdg/nixos/per-user/qyliss/notmuch/config \
notmuch new
'';
};
systemd.timers.mail = {
timerConfig.OnCalendar = "*:0/5";
timerConfig.Persistent = true;
after = [ "network-online.target" ];
wantedBy = [ "timers.target" ];
};
users.users.qyliss-mail = {
home = "/var/home/qyliss-mail";
group = "qyliss";
createHome = true;
};
home.qyliss.dirs.mail = {
group = "qyliss";
permissions = "0770";
};
}
|