Skip to content

v0.8.0

Compare
Choose a tag to compare
@github-actions github-actions released this 03 Jun 21:44
v0.8.0
308805d

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 option smtp-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 the sent folder defined in folder-aliases.
  • Imported id mapper from the lib, which means that the id mapping is now done by the CLI.
  • Added BackendConfig to AccountConfig::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 consequence native-tls, rustls-tls and rustls-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 from lettre::Mailbox to mail_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 from mailparse::ParsedMail to mail_parser::Message.
  • Changed Email::new_tpl_builder return type from Result<TplBuilder> to NewTplBuilder.
  • Renamed Email::to_read_tpl_builder to Email::to_read_tpl which returns now a Result<Tpl> directly.
  • Changed Email::to_reply_tpl_builder return type from Result<TplBuilder> to ReplyTplBuilder.
  • Changed Email::to_forward_tpl_builder return type from Result<TplBuilder> to ForwardTplBuilder.
  • Renamed backend::imap::Error::ListEnvelopesOutOfBounds by BuildPageRangeOutOfBoundsError.
  • 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 consequence native-tls, rustls-tls and rustls-native-certs cargo features.

Fixed

  • Fixed notmuch path not being expanded correctly.
  • Fixed .notmuch folder created by notmuch 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 functions TplInterpreter::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. The tpl 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.