diff --git a/modules/accounts/email.nix b/modules/accounts/email.nix
index 72eb538b..ef22b43c 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 = { };
@@ -343,10 +383,16 @@ let
host = "smtp.fastmail.com";
port = if config.smtp.tls.useStartTls then 587 else 465;
};
+
imap = {
host = "imap.fastmail.com";
port = 993;
};
+
+ jmap = {
+ host = "fastmail.com";
+ sessionUrl = "https://jmap.fastmail.com/.well-known/jmap";
+ };
})
(mkIf (config.flavor == "gmail.com") {
userName = mkDefault config.address;