CLI to synchronize, backup and restore emails, based on email-lib
.
The project is under active development, do not use in production before the final v1.0.0
(or at least do some backups).
- Backends configuration via interactive wizard.
- Sync pairs of backend together (IMAP, Maildir and Notmuch supported).
- Partial sync based on filters (folder name, envelope date).
- Restricted sync based on permissions (create/delete folder, update flag, create/update message).
- Backup and restore emails using the Maildir backend.
Coming soon:
- POP, JMAP and mbox support.
- Editing configuration via wizard.
- Native backup and restore support.
# Cargo
$ cargo install neverest
# Nix
$ nix-env -i neverest Please read the documentation for other installation methods. |
Just run neverest
, the wizard will help you to configure your default account. You can also manually edit your configuration at ~/.config/neverest/config.toml
:
config.sample.toml
[accounts.example]
# The current `example` account will be used by default.
default = true
# Filter folders according to the given rules.
#
# folder.filter.include = ["INBOX", "Sent"]
# folder.filter.exclude = ["All Mails"]
folder.filter = "all"
# Filter envelopes according to the given rules.
#
# envelope.filter.before = "1990-12-31T23:59:60Z"
# envelope.filter.after = "1990-12-31T23:59:60Z"
# The left backend configuration.
#
# In this example, the left side acts as our local cache.
left.backend.type = "maildir"
left.backend.root-dir = "/tmp/example"
# The left backend permissions.
#
# Example of a full permissive backend (default behaviour):
left.folder.permissions.create = true
left.folder.permissions.delete = true
left.flag.permissions.update = true
left.message.permissions.create = true
left.message.permissions.delete = true
# The right backend configuration.
#
# In this example, the right side acts as our remote.
right.backend.type = "imap"
right.backend.host = "localhost"
right.backend.port = 3143
right.backend.login = "alice@localhost"
# The right backend password.
#
# right.backend.passwd.cmd = "echo password"
# right.backend.passwd.keyring = "password-keyring-entry"
right.backend.passwd.raw = "password"
# The right backend encryption.
#
# right.backend.encryption = "tls" # or true
# right.backend.encryption = "start-tls"
right.backend.encryption = "none" # or false
# The right backend permissions.
#
# In this example, we set up safe permissions by denying deletions
# remote side.
right.folder.permissions.delete = false
right.message.permissions.delete = false
# The right folder aliases
#
# In this example, we define custom folder aliases for the right
# side. They are useful when you need to map left and right folders
# together.
right.folder.aliases.inbox = "Inbox"
right.folder.aliases.sent = "Sent Mails"
Please read the documentation for more detailed information.
If you want to report a bug, please send an email to the bug tracker at ~soywod/[email protected].
If you want to propose a feature or fix a bug, please send a patch to the mailing list at ~soywod/[email protected]. The simplest way to send a patch is to use git send-email, follow this guide to configure git properly.
If you just want to discuss about the project, feel free to join the Matrix workspace #pimalaya.neverest or contact me directly @soywod. You can also subscribe or unsubscribe to the mailing list.
Please read the contributing guide for more detailed information.
Special thanks to the NLnet foundation and the European Commission that helped the project to receive financial support from:
- NGI Assure in 2022
- NGI Zero Entrust in 2023
If you appreciate the project, feel free to donate using one of the following providers: