diff options
author | Azat Bahawi <azat@bahawi.net> | 2023-03-22 15:20:22 +0300 |
---|---|---|
committer | Azat Bahawi <azat@bahawi.net> | 2023-03-22 15:20:22 +0300 |
commit | eb6eebde166112397e8711a16a8618a52ecbcaca (patch) | |
tree | 8650b606bf9c5f48d843fb99e2212c052825d79a /modules/common/profiles/email.nix | |
parent | 2023-03-21 (diff) |
2023-03-22
Diffstat (limited to '')
-rw-r--r-- | modules/common/profiles/email.nix | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/modules/common/profiles/email.nix b/modules/common/profiles/email.nix new file mode 100644 index 0000000..e289c2e --- /dev/null +++ b/modules/common/profiles/email.nix @@ -0,0 +1,89 @@ +{ + config, + lib, + pkgs, + this, + ... +}: +with lib; let + cfg = config.nixfiles.modules.profiles.email.default; +in { + options.nixfiles.modules.profiles.email.default.enable = + mkEnableOption "Local Email management" // {default = this.isHeadful;}; + + config = mkIf cfg.enable { + hm = { + accounts.email = { + maildirBasePath = "${config.my.home}/doc/mail"; + + accounts = let + mkAccount = attrs: + mkMerge [ + { + mbsync = { + enable = true; + create = "both"; + expunge = "both"; + patterns = ["*"]; + }; + msmtp.enable = true; + mu.enable = true; + thunderbird = { + enable = pkgs.stdenv.isLinux; + settings = id: { + "mail.identity.id_${id}.compose_html" = false; + "mail.identity.id_${id}.reply_on_top" = 0; + }; + }; + } + attrs + ]; + + pass = path: "${config.hm.programs.password-store.package}/bin/pass show ${path}"; + in rec { + shire = mkAccount rec { + address = my.email; + aliases = [address "frodo@rohan.net" "azahi@shire.net"]; + realName = my.fullname; + gpg = { + inherit (my.pgp) key; + signByDefault = true; + encryptByDefault = false; + }; + + primary = true; + + imap = { + host = "shire.net"; + port = 993; + tls.enable = true; + }; + smtp = { + host = "shire.net"; + port = 465; + tls.enable = true; + }; + userName = "azahi@shire.net"; + passwordCommand = pass "email/shire.net/azahi"; + }; + + yahoo = mkAccount rec { + address = "admin@yahoo.com"; + aliases = [address "admin@yahoo.com"]; + realName = "Багавиев Азат"; + + flavor = "yahoo.com"; + userName = "admin@yahoo.com"; + passwordCommand = pass "email/yahoo.com/admin"; + }; + }; + }; + + programs = { + mbsync.enable = true; + msmtp.enable = true; + mu.enable = true; + }; + }; + }; +} |