Evie Litherland-Smith
268418012d
Outlook update seems to have broken davmail outside the VPN, so removed from personal computers. Removed accountEnabled let var and just tie account activation to mu status.
149 lines
4.1 KiB
Nix
149 lines
4.1 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
hostName,
|
|
...
|
|
}: {
|
|
accounts.email = {
|
|
maildirBasePath = "Mail";
|
|
accounts = let
|
|
realName = "Evie Litherland-Smith";
|
|
in {
|
|
proton = let
|
|
host = "127.0.0.1";
|
|
tls.enable = false;
|
|
in rec {
|
|
inherit realName;
|
|
primary = lib.mkDefault true;
|
|
maildir.path = "Proton";
|
|
imap = {
|
|
inherit host tls;
|
|
port = 1143;
|
|
};
|
|
smtp = {
|
|
inherit host tls;
|
|
port = 1025;
|
|
};
|
|
address = "e.litherlandsmith@proton.me";
|
|
aliases = ["evie@xenia.me.uk" "evie@litherlandsmith.slmail.me"];
|
|
userName = address;
|
|
passwordCommand = "${pkgs.pass}/bin/pass show mbsync/${hostName}/proton | head -n1";
|
|
mu.enable = lib.mkDefault true;
|
|
msmtp = {
|
|
enable = mu.enable;
|
|
extraConfig = {
|
|
tls = "off";
|
|
auth = "login";
|
|
};
|
|
};
|
|
mbsync = {
|
|
enable = mu.enable;
|
|
create = "both";
|
|
expunge = "both";
|
|
remove = "both";
|
|
patterns = ["*" "!All Mail" "!Labels*" "!Starred" "!Recovered Messages"];
|
|
subFolders = "Verbatim";
|
|
extraConfig.account.AuthMechs = "LOGIN";
|
|
};
|
|
};
|
|
icloud = rec {
|
|
inherit realName;
|
|
primary = lib.mkDefault false;
|
|
maildir.path = "iCloud";
|
|
imap.host = "imap.mail.me.com";
|
|
smtp.host = "smtp.mail.me.com";
|
|
address = "e.litherlandsmith@icloud.com";
|
|
userName = address;
|
|
passwordCommand = "${pkgs.pass}/bin/pass show mbsync/${hostName}/icloud | head -n1";
|
|
mu.enable = lib.mkDefault true;
|
|
msmtp.enable = mu.enable;
|
|
mbsync = {
|
|
enable = mu.enable;
|
|
create = "both";
|
|
expunge = "both";
|
|
remove = "both";
|
|
patterns = ["*" "!Notes"];
|
|
subFolders = "Verbatim";
|
|
};
|
|
};
|
|
outlook = let
|
|
host = "127.0.0.1";
|
|
tls.enable = false;
|
|
in rec {
|
|
inherit realName;
|
|
primary = lib.mkDefault false;
|
|
maildir.path = "Outlook";
|
|
imap = {
|
|
inherit host tls;
|
|
port = 1144;
|
|
};
|
|
smtp = {
|
|
inherit host tls;
|
|
port = 1026;
|
|
};
|
|
address = "evie.litherland-smith@ukaea.uk";
|
|
aliases = ["elitherl@jet.uk"];
|
|
userName = address;
|
|
passwordCommand = "${pkgs.pass}/bin/pass show mbsync/${hostName}/outlook | head -n1";
|
|
mu.enable = lib.mkDefault false;
|
|
msmtp = {
|
|
enable = mu.enable;
|
|
extraConfig = {
|
|
tls = "off";
|
|
auth = "login";
|
|
};
|
|
};
|
|
mbsync = {
|
|
enable = mu.enable;
|
|
create = "both";
|
|
expunge = "both";
|
|
remove = "both";
|
|
patterns = [
|
|
"*"
|
|
"!Conversation History"
|
|
"!Snoozed"
|
|
"!Social Activity Notifications"
|
|
"!Sync Issues*"
|
|
"!Unsent Messages"
|
|
];
|
|
subFolders = "Verbatim";
|
|
extraConfig.account.AuthMechs = "LOGIN";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
programs = {
|
|
mu.enable = true;
|
|
msmtp.enable = true;
|
|
mbsync = {
|
|
enable = true;
|
|
groups.inboxes = {
|
|
proton = ["INBOX"];
|
|
icloud = ["INBOX"];
|
|
outlook = ["INBOX"];
|
|
};
|
|
};
|
|
};
|
|
systemd.user.services = let
|
|
emailAccounts = config.accounts.email.accounts;
|
|
in {
|
|
davmail = lib.mkIf emailAccounts.outlook.mbsync.enable {
|
|
Unit = {
|
|
Description = "Davmail server";
|
|
Wants = ["network-online.target"];
|
|
After = ["network-online.target"];
|
|
};
|
|
Service = {
|
|
Environment = ["PATH=/run/current-system/sw/bin/:$PATH"];
|
|
Restart = "always";
|
|
ExecStartPre = with config.home; ''
|
|
/bin/sh -c "if [ ! -f ${homeDirectory}/.davmail.properties ]; then cp ${./.davmail.properties} ${homeDirectory}/.davmail.properties; fi; chmod 644 ${homeDirectory}/.davmail.properties"
|
|
'';
|
|
ExecStart = "${pkgs.davmail}/bin/davmail -notray ${config.home.homeDirectory}/.davmail.properties";
|
|
};
|
|
Install.WantedBy = ["default.target"];
|
|
};
|
|
};
|
|
}
|