Releases: pimalaya/himalaya
v0.7.3
Fixed
- Fixed Windows releases (due to typo in the github action script).
- Fixed unit tests.
v0.7.2
Added
-
Added
create
anddelete
folder commands [sourcehut#54]. -
Added generated completions and man pages to releases
[sourcehut#43]. -
Added new account config option
sync-folders-strategy
which allows
to choose a folders synchronization strategy [sourcehut#59]:sync-folders-strategy = "all"
: synchronize all existing folders
for the current accountsync-folders-strategy.include = ["folder1", "folder2", …]
:
synchronize only the given folders for the current accountsync-folders-strategy.exclude = ["folder1", "folder2", …]
:
synchronizes all folders except the given ones for the current
account
Also added new
account sync
arguments that override the account
config option:-A|--all-folders
: include all folders to the synchronization.-F|--include-folder
: include given folders to the
synchronization. They can be repeated-F folder1 folder2
or-F folder1 -F folder2
.-x|--exclude-folder
: exclude given folders from the
synchronization. They can be repeated-x folder1 folder2
or-x folder1 -F folder2
.
-
Added cargo features
native-tls
(default),rustls-tls
and
rustls-native-certs
.
Changed
- Made global options truly global, which means they can be used
everywhere (not only before commands but also after)
[sourcehut#60]. - Replaced reply all
-a
argument with-A
because it conflicted
with the global option-a|--account
. - Replaced
himalaya-lib
bypimalaya-email
. - Renamed feature
vendored
tonative-tls-vendored
. - Removed the
develop
branch, all the development is now done on the
master
branch.
Fixed
- Fixed config deserialization issue with
email-hooks
and
email-reading-format
. - Fixed flags case sensitivity.
v0.7.1
Added
- Added command
folders expunge
that deletes all emails marked for
deletion.
Changed
- Changed the location of the
documentation.
Fixed
- Fixed broken links in README.md.
Removed
- Removed the
maildir-backend
cargo feature, it is now included by
default. - Removed issues section on GitHub, now issues need to be opened by
sending an email at
~soywod/[email protected].
himalaya-lib v0.6.0
Added
- Added ability to synchronize specific folders only [#37].
- Added
Backend::expunge
function that definitely removes emails
with theDeleted
flag. - Added
Backend::mark_emails_as_deleted
function with a default
implementation that adds theDeleted
flag.
Changed
- Changed the way emails are deleted.
Backend::delete_emails
now
moves the email to theTrash
folder (or to the corresponding alias
from the config file). If the target folder is theTrash
folder,
it will instead add theDeleted
flag. Emails are removed with the
Backend::expunge
function.
Fixed
- Fixed
ImapBackend::list_envelopes
pagination. - Fixed synchronization issues for emails without
Message-ID
header
by using theDate
header instead. - Fixed maildir backend perfs issues by enabling the
mmap
feature of
themaildir
crate.
Removed
- Removed the
maildir-backend
cargo feature, it is now included by
default.
v0.7.0
Added
- Added offline support with the
account sync
command to synchronize
a backend to a local Maildir backend [#342]. - Added the flag
--disable-cache
to not use the local Maildir
backend. - Added the email composer (from its own
repository) [#341]. - Added Musl builds to releases [#356].
- Added
himalaya man
command to generate man page [#419].
Changed
- Made commands
read
,attachments
,flags
,copy
,move
,
delete
accept multiple ids. - Flipped arguments
ids
andfolder
for commandscopy
andmove
in order the folder not to be considered as an id.
Fixed
- Fixed missing folder aliases [#430].
Removed
- Removed the
-a|--attachment
argument fromwrite
,reply
and
forward
commands. Instead you can attach documents directly from
the template using the syntax<#part filename=/path/to/you/document.ext>
. - Removed the
-e|--encrypt
flag fromwrite
,reply
andforward
commands. Instead you can encrypt and sign parts directly from the
template using the syntax<#part type=text/plain encrypt=command sign=command>Hello!<#/part>
. - Removed the
-l|--log-level
option, use instead theRUST_LOG
environment variable (see the
wiki)
himalaya-lib v0.5.0
Added
- Made backend functions accept a vector of id instead of a single id
[#20]. - Added function
Backend::purge_folder
that removes all emails
inside a folder. - Added new
Backend
functions using the internal id:get_envelope_internal
: gets an envelope by its internal idadd_email_internal
: adds an email and returns its internal idget_emails_internal
: gets emails by their internal idcopy_emails_internal
: copies emails by their internal idmove_emails_internal
: copies emails by their internal iddelete_emails_internal
: copies emails by their internal idadd_flags_internal
: adds emails flags by their internal idset_flags_internal
: set emails flags by their internal idremove_flags_internal
: removes emails flags by their internal id
- Added emails synchronization feature. Backends that implement the
ThreadSafeBackend
trait inherit thesync
function that
synchronizes all folders and emails with a localMaildir
instance. - Added
Backend::sync
function and linkThreadSafeBackend::sync
to
it for the IMAP and the Maildir backends. - Added the ability to URL encode Maildir folders (in order to fix
path collisions, for eg[Gmail]/Sent
). Also added a
MaildirBackendBuilder
to facilitate the usage of the
url_encoded_folders
option. - Added a process lock for
ThreadSafeBackend::sync
, this way only
one synchronization can be performed at a time (for a same account).
Fixed
- Used native IMAP commands
copy
andmv
. - Fixed maildir date envelope parsing.
- Fixed inline attachments not collected.
Changed
- Improved
Backend
method names. Also replaced theself mut
by a
RefCell
. - Simplified the
Email
struct: there is no custom implementation
with custom fields. Now, theEmail
struct is just a wrapper around
mailparse::ParsedMail
. - Improved
Flag
structures. - Changed
Backend
trait functions due to [#20]:list_envelope
=>list_envelopes
search_envelope
=>search_envelopes
get_email
=>get_emails
, takes nowids: Vec<&str>
and
returns anEmails
structure instead of anEmail
)copy_email
=>copy_emails
, takes nowids: Vec<&str>
.move_email
=>move_emails
, takes nowids: Vec<&str>
.delete_email
=>delete_emails
, takes nowids: Vec<&str>
.add_flags
takes nowids: Vec<&str>
andflags: &Flags
.set_flags
takes nowids: Vec<&str>
andflags: &Flags
.remove_flags
takes nowids: Vec<&str>
andflags: &Flags
.
Removed
- The
email::Tpl
structure moved to its own
repository. - Encryption and signed moved with the
email::Tpl
in its own
repository.
Pending issues
- Waiting for a new release from jonhoo/rust-imap#220.
- Waiting for a new release from https://github.com/zesterer/chumsky/discussions/224#discussioncomment-4373295
- Waiting for an answer on decrypting and verifying parts staktrace/mailparse#112
v0.6.1
Added
- Added
-s|--sanitize
flag for theread
command.
Changed
-
Changed the behaviour of the
-t|--mime-type
argument of theread
command. It is less strict now: if no part is found for the given
MIME type, it will fallback to the other one. For example, giving
-t html
will show in priority HTML parts, but if none of them are
found it will show plain parts instead (and vice versa). -
Sanitization is not done by default when using the
read
command,
the flag-s|--sanitize
needs to be explicitly provided.
Fixed
- Fixed empty text bodies when reading html part on plain text email
[#352].
himalaya-lib [v0.4.0]
Added
- Added pipe support for
(imap|smtp)-passwd-cmd
[#373]. - Added
imap-ssl
andsmtp-ssl
options to be able to disable
encryption [#347]. - Implemented sendmail sender [#351].
- Fixed
process
module forMINGW*
[#254].
Changed
- Moved
Email::fold_text_plain_parts
toParts::to_readable
. It
take now aPartsReaderOptions
as parameter:plain_first
: shows plain texts first, switch to html if empty.sanitize
: sanitizes or not text bodies (both plain and html).
Fixed
v0.6.0
Changed
-
Separated the CLI from the lib module [#340].
The source code has been splitted into subrepositories:
-
[BREAKING] Renamed
-m|--mailbox
to-f|--folder
-
[BREAKING] Refactored config system [#344].
The configuration has been rethought in order to be more intuitive
and structured. Here are the breaking changes for the global config:name
becomesdisplay-name
and is not mandatory anymoresignature-delimiter
becomessignature-delim
default-page-size
has been moved tofolder-listing-page-size
andemail-listing-page-size
notify-cmd
,notify-query
andwatch-cmds
have been removed
from the global config (available in account config only)folder-aliases
has been added to the global config (previously
known asmailboxes
from the account config)email-reading-headers
,email-reading-format
,
email-reading-decrypt-cmd
,email-writing-encrypt-cmd
and
email-hooks
have been added
The account config inherits the same breaking changes from the
global config, plus:imap-*
requiresbackend = "imap"
maildir-*
requiresbackend = "maildir"
notmuch-*
requiresbackend = "notmuch"
smtp-*
requiressender = "smtp"
sendmail-*
requiressender = "sendmail"
pgp-encrypt-cmd
becomesemail-writing-encrypt-cmd
pgp-decrypt-cmd
becomesemail-reading-decrypt-cmd
mailboxes
becomesfolder-aliases
hooks
becomesemail-hooks
maildir-dir
becomesmaildir-root-dir
notmuch-database-dir
becomesnotmuch-db-path
v0.5.10
v0.5.9
v0.5.8
v0.5.7
Added
- Notmuch support [#57]
Fixed
- Build failure due to
imap
version [#303] - No tilde expansion in
maildir-dir
[#305] - Unknown command SORT [#308]
Changed
- [BREAKING] Replace
inbox-folder
,sent-folder
anddraft-folder
by a generic hashmapmailboxes
- Display short envelopes id for
maildir
andnotmuch
backends [#309]