From 467617947d25077d178fe060c841d8a92b9c3c2f Mon Sep 17 00:00:00 2001 From: Robert Helgesson Date: Wed, 22 Jun 2022 00:11:53 +0200 Subject: [PATCH] email: add support for JMAP Co-authored-by: Eliza Velasquez <4576666+elizagamedev@users.noreply.github.com> --- modules/accounts/email.nix | 49 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/modules/accounts/email.nix b/modules/accounts/email.nix index 03d3b2da8..95539d5c7 100644 --- a/modules/accounts/email.nix +++ b/modules/accounts/email.nix @@ -123,6 +123,38 @@ let }; }; + jmapModule = types.submodule { + options = { + host = mkOption { + type = types.nullOr types.str; + default = null; + example = "jmap.example.org"; + description = '' + Hostname of JMAP server. + + If both this option and are specified, + host is preferred by applications when establishing a + session. + ''; + }; + + sessionUrl = mkOption { + type = types.nullOr types.str; + default = null; + example = "https://jmap.example.org:443/.well-known/jmap"; + description = '' + URL for the JMAP Session resource. + + If both this option and are specified, + host is preferred by applications when establishing a + session. + ''; + }; + }; + }; + smtpModule = types.submodule { options = { host = mkOption { @@ -205,7 +237,7 @@ let indicate the nature of the provider. When this indicates a specific provider then, for example, - the IMAP and SMTP server configuration may be set + the IMAP, SMTP, and JMAP server configuration may be set automatically. ''; }; @@ -234,7 +266,7 @@ let default = null; description = '' The server username of this account. This will be used as - the SMTP and IMAP user name. + the SMTP, IMAP, and JMAP user name. ''; }; @@ -299,6 +331,14 @@ let ''; }; + jmap = mkOption { + type = types.nullOr jmapModule; + default = null; + description = '' + The JMAP configuration to use for this account. + ''; + }; + signature = mkOption { type = signatureModule; default = { }; @@ -350,6 +390,11 @@ let host = "smtp.fastmail.com"; port = if config.smtp.tls.useStartTls then 587 else 465; }; + + jmap = { + host = "fastmail.com"; + sessionUrl = "https://jmap.fastmail.com/.well-known/jmap"; + }; }) (mkIf (config.flavor == "gmail.com") {