84 lines
2.2 KiB
Nix
84 lines
2.2 KiB
Nix
|
{ config, nixosConfig, lib, pkgs, ... }:
|
||
|
|
||
|
with lib; {
|
||
|
config = mkIf config.nathan.services.email.enable {
|
||
|
# Packages used for mbsync + mu + protonmail-bridge
|
||
|
home.packages = with pkgs; [
|
||
|
pass
|
||
|
protonmail-bridge
|
||
|
mu
|
||
|
xapian
|
||
|
];
|
||
|
# Configure protonmail as a service
|
||
|
systemd.user.services.protonmail-bridge = {
|
||
|
Unit = {
|
||
|
Description = "Proton Mail Bridge";
|
||
|
After = [ "graphical-session-pre.target" ];
|
||
|
Before = [ "mbsync.service" ];
|
||
|
PartOf = [ "graphical-session.target" ];
|
||
|
};
|
||
|
Service = {
|
||
|
Type = "simple";
|
||
|
ExecStart = ''
|
||
|
${pkgs.protonmail-bridge}/bin/protonmail-bridge --noninteractive
|
||
|
'';
|
||
|
};
|
||
|
};
|
||
|
# Setup accounts
|
||
|
accounts.email = {
|
||
|
maildirBasePath = ".mail";
|
||
|
accounts = {
|
||
|
"nathan@mccarty.io" = {
|
||
|
maildir = {
|
||
|
path = "nathan@mccarty.io";
|
||
|
};
|
||
|
address = "nathan@mccarty.io";
|
||
|
primary = true;
|
||
|
realName = "Nathan McCarty";
|
||
|
userName = "nathan@mccarty.io";
|
||
|
# TODO: Move into `pass`
|
||
|
passwordCommand = "${pkgs.pass}/bin/pass protonmail-bridge-password";
|
||
|
aliases = [
|
||
|
"thatonelutenist@protonmail.com"
|
||
|
"nathan@asuran.rs"
|
||
|
"nathan@community.rs"
|
||
|
];
|
||
|
imap = {
|
||
|
host = "127.0.0.1";
|
||
|
port = 1143;
|
||
|
tls = {
|
||
|
useStartTls = true;
|
||
|
certificatesFile = ../../certificates/protonmail-${nixosConfig.networking.hostName}.pem;
|
||
|
};
|
||
|
};
|
||
|
smtp = {
|
||
|
host = "127.0.0.1";
|
||
|
port = 1025;
|
||
|
tls = {
|
||
|
useStartTls = true;
|
||
|
certificatesFile = ../../certificates/protonmail-${nixosConfig.networking.hostName}.pem;
|
||
|
};
|
||
|
};
|
||
|
mbsync = {
|
||
|
enable = true;
|
||
|
create = "maildir";
|
||
|
};
|
||
|
mu.enable = true;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
# Setup mbsync
|
||
|
programs.mbsync = {
|
||
|
enable = true;
|
||
|
};
|
||
|
services.mbsync = {
|
||
|
enable = true;
|
||
|
postExec = "${pkgs.mu}/bin/mu index";
|
||
|
};
|
||
|
# Setup mu
|
||
|
programs.mu = {
|
||
|
enable = true;
|
||
|
};
|
||
|
};
|
||
|
}
|