Files
azos/modules/home-manager/mail.nix
T
2025-05-01 16:59:04 +03:00

86 lines
2.1 KiB
Nix
Executable File

#https://xeiaso.net/talks/asg-2023-nixos/ example
{ lib, config, pkgs, ... }:
let
isEnabled =
config.azos.mail.enable;
default_account_params = {
realName = "Aner Zakobar";
notmuch.enable = true;
};
default_lieer_params = default_account_params // {
lieer.enable = true;
lieer.sync.enable = true;
flavor = "gmail.com";
};
default_smtp = {
tls = {
enable = true;
certificatesFile = "/etc/ssl/certs/ca-certificates.crt";
};
};
default_gmail_smtp = default_smtp // {
host = "smtp.gmail.com";
};
in {
options.azos.mail.enable = lib.mkOption {
default = true;
example = true;
type = lib.types.bool;
};
config = lib.mkIf isEnabled {
programs= {
notmuch = {
enable = true;
hooks = {
preNew = "mbsync -a && gmi sync";
};
};
mbsync = {
enable = true;
};
msmtp = {
enable = true;
};
lieer = {
enable = true;
};
};
accounts.email.accounts = {
gmail = default_lieer_params // {
address = "anerisgreat@gmail.com";
userName = "anerisgreat";
smtp = default_gmail_smtp;
passwordCommand = "pass gmail.com/mbsync-anerz";
};
bgu = default_lieer_params // {
address = "anerz@post.bgu.ac.il";
userName = "anerz@post.bgu.ac.il";
smtp = default_gmail_smtp;
passwordCommand = "pass post.bgu.ac.il/mbsync-anerz";
};
zakobar = default_account_params // {
address = "aner@zakobar.com";
msmtp.enable = true;
primary = true;
userName = "aner@zakobar.com";
imap = {
host = "mail.privateemail.com";
};
mbsync = {
enable = true;
create = "maildir";
};
smtp = default_smtp // {
port = 587;
host = "mail.privateemail.com";
};
passwordCommand = "pass zakobar.com/mail/aner";
};
};
};
}