boxen/home/profiles/email/default.nix

88 lines
1.9 KiB
Nix

{ config, lib, pkgs, nixosConfig, ... }:
let
params = import ../../../secrets/email.nix;
realName = nixosConfig.users.users.jez.description;
in {
accounts.email.accounts.main = rec {
#primary = true;
inherit realName;
inherit (params.main) address userName passwordCommand aliases;
imap = {
inherit (params.main) host;
tls.useStartTls = true;
};
smtp = {
inherit (params.main) host;
port = 587;
tls.useStartTls = true;
};
mu.enable = true;
mbsync = {
enable = true;
create = "both";
remove = "both";
expunge = "both";
flatten = ".";
patterns = [ "*" ];
};
msmtp.enable = true;
};
accounts.email.accounts.fm = rec {
primary = true;
inherit realName;
inherit (params.fm) address userName passwordCommand aliases;
imap = { host = params.fm.host.imap; };
smtp = { host = params.fm.host.smtp; };
mu.enable = true;
mbsync = {
enable = true;
create = "both";
remove = "both";
expunge = "both";
flatten = ".";
patterns = [ "*" ];
extraConfig.channel = { CopyArrivalDate = "yes"; };
};
msmtp.enable = true;
};
accounts.email.accounts.protonmail = rec {
inherit realName;
inherit (params.protonmail) address userName passwordCommand;
imap = {
host = "127.0.0.1";
port = 1143;
tls.enable = false;
};
mbsync = {
enable = false;
create = "maildir";
flatten = ".";
patterns = [ "INBOX" "Sent" "All Mail" ];
extraConfig.account = { Timeout = 300; };
};
};
programs.mu.enable = true;
programs.zsh.initExtra = ''
function mu-archive {
mu "$@" --muhome ~/Archive/Mail/mu
}
'';
programs.msmtp.enable = true;
programs.mbsync.enable = true;
services.mbsync = {
enable = true;
postExec = "${pkgs.bash}/bin/bash -c '${pkgs.mu}/bin/mu index || true'";
};
}