From 010d620b76d9a938f0fa66fb90954c385469524b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kier=C3=A1n=20Meinhardt?= Date: Sun, 7 Feb 2021 22:00:32 +0100 Subject: [PATCH] feat(mail): server settings in variables --- configs/mail/accounts.nix | 127 +++++++++++++++++++------------------- 1 file changed, 65 insertions(+), 62 deletions(-) diff --git a/configs/mail/accounts.nix b/configs/mail/accounts.nix index 9d96c45..fa88d01 100644 --- a/configs/mail/accounts.nix +++ b/configs/mail/accounts.nix @@ -12,46 +12,85 @@ let notmuch.enable = true; }; + settings = { + fastmail = { + smtp = { + host = "smtp.fastmail.com"; + port = 465; + tls.enable = true; + }; + imap = { + host = "imap.fastmail.com"; + port = 993; + tls.enable = true; + }; + }; + cock = { + smtp = { + host = "mail.cock.li"; + port = 587; + tls = { + enable = true; + useStartTls = true; + }; + }; + imap = { + host = "mail.cock.li"; + port = 993; + tls.enable = true; + }; + }; + posteo = { + smtp = { + host = "posteo.de"; + port = 587; + tls = { + enable = true; + useStartTls = true; + }; + }; + imap = { + host = "posteo.de"; + port = 993; + tls.enable = true; + }; + }; + hu-berlin = { + smtp = { + host = "mailhost.cms.hu-berlin.de"; + port = 25; + tls = { + enable = true; + useStartTls = true; + }; + }; + imap = { + host = "mailbox.cms.hu-berlin.de"; + port = 993; + tls.enable = true; + }; + }; + }; + # turns out we have to escape $ because, if the password contains a $, it will get interpolated as a variable by the msmtp `passwordeval` which does: `bash -c "COMMAND; echo"` pass_ = file: "echo ${lib.escape ["$"] (lib.escapeShellArg (lib.strings.fileContents file))}"; in { fysi = enableDefaults { primary = false; - smtp = { - host = "smtp.fastmail.com"; - port = 465; - tls.enable = true; - }; - imap = { - host = "imap.fastmail.com"; - port = 993; - tls.enable = true; - }; userName = "kieran@fysi.tech"; address = "kieran@fysi.tech"; realName = kieran.name; passwordCommand = pass_ ; + inherit (settings.fastmail) imap smtp; }; cock = enableDefaults { primary = false; - smtp = { - host = "mail.cock.li"; - port = 587; - tls = { - enable = true; - useStartTls = true; - }; - }; - imap = { - host = "mail.cock.li"; - port = 993; - tls.enable = true; - }; userName = "2210@cock.li"; address = "2210@cock.li"; realName = "2210"; passwordCommand = pass_ ; + inherit (settings.cock) imap smtp; }; kieran-gmail = enableDefaults { primary = false; @@ -81,23 +120,11 @@ in }; posteo = enableDefaults { primary = true; - smtp = { - host = "posteo.de"; - port = 587; - tls = { - enable = true; - useStartTls = true; - }; - }; - imap = { - host = "posteo.de"; - port = 993; - tls.enable = true; - }; address = "kieran.meinhardt@posteo.net"; realName = kieran.name; userName = "kieran.meinhardt@posteo.net"; passwordCommand = pass_ ; + inherit (settings.posteo) imap smtp; }; hu-berlin = enableDefaults { primary = false; @@ -105,19 +132,7 @@ in realName = kieran.name; userName = "meinhark"; passwordCommand = pass_ ; - smtp = { - host = "mailhost.cms.hu-berlin.de"; - port = 25; - tls = { - enable = true; - useStartTls = true; - }; - }; - imap = { - host = "mailbox.cms.hu-berlin.de"; - port = 993; - tls.enable = true; - }; + inherit (settings.hu-berlin) imap smtp; }; hu-berlin-work = enableDefaults { primary = false; @@ -125,18 +140,6 @@ in realName = kieran.name; userName = "meinhaki"; passwordCommand = pass_ ; - smtp = { - host = "mailhost.cms.hu-berlin.de"; - port = 25; - tls = { - enable = true; - useStartTls = true; - }; - }; - imap = { - host = "mailbox.cms.hu-berlin.de"; - port = 993; - tls.enable = true; - }; + inherit (settings.hu-berlin) imap smtp; }; }