email: add support for JMAP

Co-authored-by: Eliza Velasquez <4576666+elizagamedev@users.noreply.github.com>
This commit is contained in:
Robert Helgesson 2022-06-22 00:11:53 +02:00
parent 1ebbef8642
commit 467617947d
No known key found for this signature in database
GPG key ID: 36BDAA14C2797E89

View file

@ -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.
</para><para>
If both this option and <xref
linkend="opt-accounts.email.accounts._name_.jmap.sessionUrl"/> are specified,
<code>host</code> 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.
</para><para>
If both this option and <xref
linkend="opt-accounts.email.accounts._name_.jmap.host"/> are specified,
<code>host</code> is preferred by applications when establishing a
session.
'';
};
};
};
smtpModule = types.submodule { smtpModule = types.submodule {
options = { options = {
host = mkOption { host = mkOption {
@ -205,7 +237,7 @@ let
indicate the nature of the provider. indicate the nature of the provider.
</para><para> </para><para>
When this indicates a specific provider then, for example, 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. automatically.
''; '';
}; };
@ -234,7 +266,7 @@ let
default = null; default = null;
description = '' description = ''
The server username of this account. This will be used as 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 { signature = mkOption {
type = signatureModule; type = signatureModule;
default = { }; default = { };
@ -350,6 +390,11 @@ let
host = "smtp.fastmail.com"; host = "smtp.fastmail.com";
port = if config.smtp.tls.useStartTls then 587 else 465; 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") { (mkIf (config.flavor == "gmail.com") {