Added
- Added keyring support, which means Himalaya can now use your system's global keyring to get/set sensitive data like passwords or tokens.
- Added required IMAP option
imap-auth
and SMTP optionsmtp-auth
. Possible values:passwd
,oauth2
. - Added OAuth 2.0 support for IMAP and SMTP.
- Added passwords and OAuth 2.0 configuration via the wizard.
- Added
email-sending-save-copy
option to control whenever a copy of any sent email should be saved in thesent
folder defined infolder-aliases
. - Imported id mapper from the lib, which means that the id mapping is now done by the CLI.
- Added
BackendConfig
toAccountConfig::backend
to match sender implementation. - Added support for pipeline commands, which means commands can be either a single command (string) or piped commands (list of strings). It applies for:
email-writing-verify-cmd
email-writing-decrypt-cmd
email-writing-sign-cmd
email-writing-encrypt-cmd
Changed
-
Changed release archive extensions from
.tar.gz
to.tgz
. -
Moved
wizard
module into domains (config, account, backend…). -
[BREAKING] Changed the way secrets are managed. A secret is a sensitive data like passwords or tokens. There is 3 possible ways to declare a secret in the config file:
{ raw = <secret> }
for the raw secret as string (unsafe, not recommanded),{ cmd = <secret-cmd> }
for command that exposes the secret,{ keyring = <secret-entry> }
for entry in your system's global keyring that contains the secret.
This applies for:
imap-passwd
imap-oauth2-client-secret
imap-oauth2-access-token
imap-oauth2-refresh-token
smtp-passwd
smtp-oauth2-client-secret
smtp-oauth2-access-token
smtp-oauth2-refresh-token
Fixed
- Fixed Windows releases corrupted archives.
Removed
- [BREAKING] Removed
-s|--sanitize
option. It is done by default now, except if the-t|--mime-type html
is set. - [BREAKING] Removed
native-tls
support,rustls-tls
is now the only TLS provider available. Removed in consequencenative-tls
,rustls-tls
andrustls-native-certs
cargo features.
pimalaya-email
Added
- Added IP support using
rustls
v0.21
[#80]. - Added
AccountConfig::generate_tpl_interpreter
function to generate a template interpreter with default options based on the config (pgp encrypt, pgp verify and attachments dir).
Changed
- Changed
AccountConfig::addr
return type fromlettre::Mailbox
tomail_builder::Address
. - Changed
AccountConfig::email_reading_headers
default values to["From", "To", "Cc", "Subject"]
. - Changed
AccountConfig::email_writing_headers
default values to["From", "To", "In-Reply-To", "Cc", "Subject"]
. - Removed noise around signature by trimming it.
- Changed
Email::parsed
return type frommailparse::ParsedMail
tomail_parser::Message
. - Changed
Email::new_tpl_builder
return type fromResult<TplBuilder>
toNewTplBuilder
. - Renamed
Email::to_read_tpl_builder
toEmail::to_read_tpl
which returns now aResult<Tpl>
directly. - Changed
Email::to_reply_tpl_builder
return type fromResult<TplBuilder>
toReplyTplBuilder
. - Changed
Email::to_forward_tpl_builder
return type fromResult<TplBuilder>
toForwardTplBuilder
. - Renamed
backend::imap::Error::ListEnvelopesOutOfBounds
byBuildPageRangeOutOfBoundsError
. - Replaced [lettre] by [mail-send], [mailparse] by [mail-parser] and [maildir] by [maildirpp].
- Removed
native-tls
support,rustls-tls
is now the only TLS provider available. Removed in consequencenative-tls
,rustls-tls
andrustls-native-certs
cargo features.
Fixed
- Fixed notmuch path not being expanded correctly.
- Fixed
.notmuch
folder created bynotmuch new
command being treated as a folder. Because it is a folder starting by a dot, it was considered as a Maildir++ folder (which is not). - Fixed IMAP pagination error when listing envelopes [#76].
pimalaya-email-tpl
Added
- Added parsing template from raw message support. Parsing is done via the
TplInterpreter
builder, and functionsTplInterpreter::interpret_*
return the parsed template.
Changed
- Replaced [lettre] by [mail-builder] and [mail-parser].
- Use crate [nanohtml2text] instead of manual html to plain transform using ammonia, html-escape and regex.
- Moved MML stuff in its own
mml
module, to be as close as what provides the Emacs MML module. Thetpl
module contains stuff related to template. A template is just an email composed of headers and one unique plain text part. This plain text part can be written in MML. - Compiler options are now attached to the
Tpl
structure.