{"id":14424225,"url":"https://github.com/pimalaya/neverest","last_synced_at":"2026-01-31T16:02:51.173Z","repository":{"id":229828111,"uuid":"777228412","full_name":"pimalaya/neverest","owner":"pimalaya","description":"CLI to synchronize, backup and restore emails","archived":false,"fork":false,"pushed_at":"2024-12-19T07:56:47.000Z","size":288,"stargazers_count":289,"open_issues_count":15,"forks_count":10,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-01-14T01:07:45.579Z","etag":null,"topics":["backup","cli","email","imap","jmap","maildir","notmuch","restore","rust","sync","synchronizer","terminal"],"latest_commit_sha":null,"homepage":"https://pimalaya.org","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pimalaya.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"soywod","ko_fi":"soywod","buy_me_a_coffee":"soywod","liberapay":"soywod","thanks_dev":"soywod","custom":"https://www.paypal.com/paypalme/soywod"}},"created_at":"2024-03-25T13:05:39.000Z","updated_at":"2026-01-12T16:37:06.000Z","dependencies_parsed_at":"2024-04-14T09:32:24.653Z","dependency_job_id":"0e4c82a7-21e6-464b-bc17-3f3ca4a47cbf","html_url":"https://github.com/pimalaya/neverest","commit_stats":null,"previous_names":["soywod/neverest","pimalaya/neverest"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/pimalaya/neverest","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pimalaya%2Fneverest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pimalaya%2Fneverest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pimalaya%2Fneverest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pimalaya%2Fneverest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pimalaya","download_url":"https://codeload.github.com/pimalaya/neverest/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pimalaya%2Fneverest/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28947567,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T14:26:55.697Z","status":"ssl_error","status_checked_at":"2026-01-31T14:26:52.545Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backup","cli","email","imap","jmap","maildir","notmuch","restore","rust","sync","synchronizer","terminal"],"created_at":"2024-08-30T02:02:13.108Z","updated_at":"2026-01-31T16:02:51.157Z","avatar_url":"https://github.com/pimalaya.png","language":"Rust","funding_links":["https://github.com/sponsors/soywod","https://ko-fi.com/soywod","https://buymeacoffee.com/soywod","https://liberapay.com/soywod","https://thanks.dev/soywod","https://www.paypal.com/paypalme/soywod","https://www.buymeacoffee.com/soywod","https://img.shields.io/badge/-thanks.dev-000000?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQuMDk3IiBoZWlnaHQ9IjE3LjU5NyIgY2xhc3M9InctMzYgbWwtMiBsZzpteC0wIHByaW50Om14LTAgcHJpbnQ6aW52ZXJ0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05Ljc4MyAxNy41OTdINy4zOThjLTEuMTY4IDAtMi4wOTItLjI5Ny0yLjc3My0uODktLjY4LS41OTMtMS4wMi0xLjQ2Mi0xLjAyLTIuNjA2di0xLjM0NmMwLTEuMDE4LS4yMjctMS43NS0uNjc4LTIuMTk1LS40NTItLjQ0Ni0xLjIzMi0uNjY5LTIuMzQtLjY2OUgwVjcuNzA1aC41ODdjMS4xMDggMCAxLjg4OC0uMjIyIDIuMzQtLjY2OC40NTEtLjQ0Ni42NzctMS4xNzcuNjc3LTIuMTk1VjMuNDk2YzAtMS4xNDQuMzQtMi4wMTMgMS4wMjEtMi42MDZDNS4zMDUuMjk3IDYuMjMgMCA3LjM5OCAwaDIuMzg1djEuOTg3aC0uOTg1Yy0uMzYxIDAtLjY4OC4wMjctLjk4LjA4MmExLjcxOSAxLjcxOSAwIDAgMC0uNzM2LjMwN2MtLjIwNS4xNTYtLjM1OC4zODQtLjQ2LjY4Mi0uMTAzLjI5OC0uMTU0LjY4Mi0uMTU0IDEuMTUxVjUuMjNjMCAuODY3LS4yNDkgMS41ODYtLjc0NSAyLjE1NS0uNDk3LjU2OS0xLjE1OCAxLjAwNC0xLjk4MyAxLjMwNXYuMjE3Yy44MjUuMyAxLjQ4Ni43MzYgMS45ODMgMS4zMDUuNDk2LjU3Ljc0NSAxLjI4Ny43NDUgMi4xNTR2MS4wMjFjMCAuNDcuMDUxLjg1NC4xNTMgMS4xNTIuMTAzLjI5OC4yNTYuNTI1LjQ2MS42ODIuMTkzLjE1Ny40MzcuMjYuNzMyLjMxMi4yOTUuMDUuNjIzLjA3Ni45ODQuMDc2aC45ODVabTE0LjMxNC03LjcwNmgtLjU4OGMtMS4xMDggMC0xLjg4OC4yMjMtMi4zNC42NjktLjQ1LjQ0NS0uNjc3IDEuMTc3LS42NzcgMi4xOTVWMTQuMWMwIDEuMTQ0LS4zNCAyLjAxMy0xLjAyIDIuNjA2LS42OC41OTMtMS42MDUuODktMi43NzQuODloLTIuMzg0di0xLjk4OGguOTg0Yy4zNjIgMCAuNjg4LS4wMjcuOTgtLjA4LjI5Mi0uMDU1LjUzOC0uMTU3LjczNy0uMzA4LjIwNC0uMTU3LjM1OC0uMzg0LjQ2LS42ODIuMTAzLS4yOTguMTU0LS42ODIuMTU0LTEuMTUydi0xLjAyYzAtLjg2OC4yNDgtMS41ODYuNzQ1LTIuMTU1LjQ5Ny0uNTcgMS4xNTgtMS4wMDQgMS45ODMtMS4zMDV2LS4yMTdjLS44MjUtLjMwMS0xLjQ4Ni0uNzM2LTEuOTgzLTEuMzA1LS40OTctLjU3LS43NDUtMS4yODgtLjc0NS0yLjE1NXYtMS4wMmMwLS40Ny0uMDUxLS44NTQtLjE1NC0xLjE1Mi0uMTAyLS4yOTgtLjI1Ni0uNTI2LS40Ni0uNjgyYTEuNzE5IDEuNzE5IDAgMCAwLS43MzctLjMwNyA1LjM5NSA1LjM5NSAwIDAgMC0uOTgtLjA4MmgtLjk4NFYwaDIuMzg0YzEuMTY5IDAgMi4wOTMuMjk3IDIuNzc0Ljg5LjY4LjU5MyAxLjAyIDEuNDYyIDEuMDIgMi42MDZ2MS4zNDZjMCAxLjAxOC4yMjYgMS43NS42NzggMi4xOTUuNDUxLjQ0NiAxLjIzMS42NjggMi4zNC42NjhoLjU4N3oiIGZpbGw9IiNmZmYiLz48L3N2Zz4="],"categories":["Rust"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./logo.svg\" alt=\"Logo\" width=\"128\" height=\"128\" /\u003e\n  \u003ch1\u003e📫 Neverest\u003c/h1\u003e\n  \u003cp\u003eCLI to synchronize, backup and restore emails,\u003cbr\u003ebased on \u003ca href=\"https://crates.io/crates/email-lib\"\u003e\u003ccode\u003eemail-lib\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n  \u003cp\u003e\n    \u003ca href=\"https://github.com/pimalaya/neverest/releases/latest\"\u003e\u003cimg alt=\"Release\" src=\"https://img.shields.io/github/v/release/pimalaya/neverest?color=success\"/\u003e\u003c/a\u003e\n\t\u003ca href=\"https://repology.org/project/neverest/versions\"\u003e\u003cimg alt=\"Repology\" src=\"https://img.shields.io/repology/repositories/neverest?color=success\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://matrix.to/#/#pimalaya:matrix.org\"\u003e\u003cimg alt=\"Matrix\" src=\"https://img.shields.io/matrix/pimalaya:matrix.org?color=success\u0026label=chat\"/\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n![screenshot](./screenshot.jpeg)\n\n*The project is under active development, do not use in production before the final `v1.0.0` (or at least do some manual backups).*\n\n## Features\n\n- Multi-accounting\n- Interactive configuration via **wizard** (requires `wizard` feature)\n- Synchronize pair of backends together (namely `left` and `right`)\n- **Partial** synchronization based on **filters**\n- **Restrictive** synchronization based on **permissions**\n- **IMAP** backend (requires `imap` feature)\n- **Maildir** backend (requires `maildir` feature)\n- **Notmuch** backend (requires `notmuch` feature)\n- **Backup** and **restore** emails using the Maildir backend\n\n*Neverest CLI is written in [Rust](https://www.rust-lang.org/), and relies on [cargo features](https://doc.rust-lang.org/cargo/reference/features.html) to enable or disable functionalities. Default features can be found in the `features` section of the [`Cargo.toml`](https://github.com/pimalaya/neverest/blob/master/Cargo.toml#L18).*\n\n## Installation\n\n*The `v1.0.0` is currently being tested on the `master` branch, and is the prefered version to use. Previous versions (including GitHub beta releases and repositories published versions) are not recommended.*\n\n### Pre-built binary\n\nNeverest CLI `v1.0.0` can be installed with a pre-built binary. Find the latest [`pre-releases`](https://github.com/pimalaya/neverest/actions/workflows/pre-releases.yml) GitHub workflow and look for the *Artifacts* section. You should find a pre-built binary matching your OS.\n\n### Cargo (git)\n\nNeverest CLI `v1.0.0` can also be installed with [cargo](https://doc.rust-lang.org/cargo/):\n\n```bash\n$ cargo install --frozen --force --git https://github.com/pimalaya/neverest.git\n```\n\n### Other outdated methods\n\nThese installation methods should not be used until the `v1.0.0` is finally released, as they are all (temporarily) outdated:\n\n\u003cdetails\u003e\n  \u003csummary\u003ePre-built binary\u003c/summary\u003e\n\n  Neverest CLI can be installed with a prebuilt binary:\n\n  ```bash\n  # As root:\n  $ curl -sSL https://raw.githubusercontent.com/pimalaya/neverest/master/install.sh | sudo sh\n\n  # As a regular user:\n  $ curl -sSL https://raw.githubusercontent.com/pimalaya/neverest/master/install.sh | PREFIX=~/.local sh\n  ```\n\n  These commands install the latest binary from the GitHub [releases](https://github.com/pimalaya/neverest/releases) section.\n\n  *Binaries are built with [default](https://github.com/pimalaya/neverest/blob/master/Cargo.toml#L18) cargo features. If you want to enable or disable a feature, please use another installation method.*\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eCargo\u003c/summary\u003e\n\n  Neverest CLI can be installed with [cargo](https://doc.rust-lang.org/cargo/):\n\n  ```bash\n  $ cargo install neverest\n\n  # With only IMAP support:\n  $ cargo install neverest --no-default-features --features imap\n  ```\n\n  You can also use the git repository for a more up-to-date (but less stable) version:\n\n  ```bash\n  $ cargo install --git https://github.com/pimalaya/neverest.git neverest\n  ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eNix\u003c/summary\u003e\n\n  Neverest CLI can be installed with [Nix](https://serokell.io/blog/what-is-nix):\n\n  ```bash\n  $ nix-env -i neverest\n  ```\n\n  You can also use the git repository for a more up-to-date (but less stable) version:\n\n  ```bash\n  $ nix-env -if https://github.com/pimalaya/neverest/archive/master.tar.gz\n\n  # or, from within the source tree checkout\n  $ nix-env -if .\n  ```\n\n  If you have the [Flakes](https://nixos.wiki/wiki/Flakes) feature enabled:\n\n  ```bash\n  $ nix profile install neverest\n\n  # or, from within the source tree checkout\n  $ nix profile install\n\n  # you can also run Neverest directly without installing it:\n  $ nix run neverest\n  ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eSources\u003c/summary\u003e\n\n  Neverest CLI can be installed from sources.\n\n  First you need to install the Rust development environment (see the [rust installation documentation](https://doc.rust-lang.org/cargo/getting-started/installation.html)):\n\n  ```bash\n  $ curl https://sh.rustup.rs -sSf | sh\n  ```\n\n  Then, you need to clone the repository and install dependencies:\n\n  ```bash\n  $ git clone https://github.com/pimalaya/neverest.git\n  $ cd neverest\n  $ cargo check\n  ```\n\n  Now, you can build Neverest:\n\n  ```bash\n  $ cargo build --release\n  ```\n\n  *Binaries are available under the `target/release` folder.*\n\u003c/details\u003e\n\n## Configuration\n\nJust run `neverest`, the wizard will help you to configure your default account.\n\nYou can also manually edit your own configuration, from scratch:\n\n- Copy the content of the documented [`./config.sample.toml`](./config.sample.toml)\n- Paste it in a new file `~/.config/neverest/config.toml`\n- Edit, then comment or uncomment the options you want\n\n\u003cdetails\u003e\n  \u003csummary\u003eProton Mail (Bridge)\u003c/summary\u003e\n\n  When using Proton Bridge, emails are synchronized locally and exposed via a local IMAP/SMTP server. This implies 2 things:\n\n  - Id order may be reversed or shuffled, but envelopes will still be sorted by date.\n  - SSL/TLS needs to be deactivated manually.\n  - The password to use is the one generated by Proton Bridge, not the one from your Proton Mail account.\n\n  ```toml\n  [accounts.proton]\n  left.backend.type = \"maildir\"\n  left.backend.root-dir = \"~/.Mail/proton\"\n\n  right.backend.type = \"imap\"\n  right.backend.host = \"127.0.0.1\"\n  right.backend.port = 1143\n  right.backend.encryption = false\n  right.backend.login = \"example@proton.me\"\n  right.backend.auth.type = \"password\"\n  right.backend.auth.raw = \"*****\"\n  ```\n\n  Keeping your password inside the configuration file is good for testing purpose, but it is not safe. You have 2 better alternatives:\n\n  - Save your password in any password manager that can be queried via the CLI:\n\n    ```toml\n    right.backend.auth.cmd = \"pass show proton\"\n    ```\n\n  - Use the global keyring of your system (requires the `keyring` cargo feature):\n\n    ```toml\n    right.backend.auth.keyring = \"proton-example\"\n    ```\n\n    Running `neverest configure proton` will ask for your IMAP password, just paste the one generated previously.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eGmail\u003c/summary\u003e\n\n  Google passwords cannot be used directly. There is two ways to authenticate yourself:\n\n  ### Using [App Passwords](https://support.google.com/mail/answer/185833)\n\n  This option is the simplest and the fastest. First, be sure that:\n\n  - IMAP is enabled\n  - Two-step authentication is enabled\n  - Less secure app access is enabled\n\n  First create a [dedicated password](https://myaccount.google.com/apppasswords) for Neverest.\n\n  ```toml\n  [accounts.gmail]\n  # this is important in order not to sync twice your account\n  folder.filters.exclude = [\"[Gmail]/All Mail\"]\n\n  left.backend.type = \"maildir\"\n  left.backend.root-dir = \"~/.Mail/gmail\"\n\n  right.backend.type = \"imap\"\n  right.backend.host = \"imap.gmail.com\"\n  right.backend.port = 993\n  right.backend.login = \"example@gmail.com\"\n  right.backend.auth.type = \"password\"\n  right.backend.auth.raw = \"*****\"\n\n  right.folder.aliases.inbox = \"INBOX\"\n  right.folder.aliases.sent = \"[Gmail]/Sent Mail\"\n  right.folder.aliases.drafts = \"[Gmail]/Drafts\"\n  right.folder.aliases.trash = \"[Gmail]/Trash\"\n  ```\n\n  Keeping your password inside the configuration file is good for testing purpose, but it is not safe. You have 2 better alternatives:\n\n  - Save your password in any password manager that can be queried via the CLI:\n\n    ```toml\n    right.backend.auth.cmd = \"pass show gmail\"\n    ```\n\n  - Use the global keyring of your system (requires the `keyring` cargo feature):\n\n    ```toml\n    right.backend.auth.keyring = \"gmail-example\"\n    ```\n\n    Running `neverest configure gmail` will ask for your IMAP password, just paste the one generated previously.\n\n  ### Using OAuth 2.0\n\n  This option is the most secure but the hardest to configure. It requires the `oauth2` and `keyring` cargo features.\n\n  First, you need to get your OAuth 2.0 credentials by following [this guide](https://developers.google.com/identity/protocols/oauth2#1.-obtain-oauth-2.0-credentials-from-the-dynamic_data.setvar.console_name-.). Once you get your client id and your client secret, you can configure your Neverest account this way:\n\n  ```toml\n  [accounts.gmail]\n  # this is important in order not to sync twice your account\n  folder.filters.exclude = [\"[Gmail]/All Mail\"]\n\n  left.backend.type = \"maildir\"\n  left.backend.root-dir = \"~/.Mail/gmail\"\n\n  right.backend.type = \"imap\"\n  right.backend.host = \"imap.gmail.com\"\n  right.backend.port = 993\n  right.backend.login = \"example@gmail.com\"\n  right.backend.auth.type = \"oauth2\"\n  right.backend.auth.client-id = \"*****\"\n  right.backend.auth.auth-url = \"https://accounts.google.com/o/oauth2/v2/auth\"\n  right.backend.auth.token-url = \"https://www.googleapis.com/oauth2/v3/token\"\n  right.backend.auth.pkce = true\n  right.backend.auth.scope = \"https://mail.google.com/\"\n\n  right.folder.aliases.inbox = \"INBOX\"\n  right.folder.aliases.sent = \"[Gmail]/Sent Mail\"\n  right.folder.aliases.drafts = \"[Gmail]/Drafts\"\n  right.folder.aliases.trash = \"[Gmail]/Trash\"\n  ```\n\n  Running `neverest configure gmail` will complete your OAuth 2.0 setup and ask for your client secret.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eOutlook\u003c/summary\u003e\n\n  ```toml\n  [accounts.outlook]\n  left.backend.type = \"maildir\"\n  left.backend.root-dir = \"~/.Mail/outlook\"\n\n  right.backend.type = \"imap\"\n  right.backend.host = \"outlook.office365.com\"\n  right.backend.port = 993\n  right.backend.login = \"example@outlook.com\"\n  right.backend.auth.type = \"password\"\n  right.backend.auth.raw = \"*****\"\n  ```\n\n  Keeping your password inside the configuration file is good for testing purpose, but it is not safe. You have 2 better alternatives:\n\n  - Save your password in any password manager that can be queried via the CLI:\n\n    ```toml\n    right.backend.auth.cmd = \"pass show outlook\"\n    ```\n\n  - Use the global keyring of your system (requires the `keyring` cargo feature):\n\n    ```toml\n    right.backend.auth.keyring = \"outlook-example\"\n    ```\n\n    Running `neverest configure outlook` will ask for your IMAP password, just paste the one generated previously.\n\n  ### Using OAuth 2.0\n\n  This option is the most secure but the hardest to configure. First, you need to get your OAuth 2.0 credentials by following [this guide](https://learn.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth). Once you get your client id and your client secret, you can configure your Neverest account this way:\n\n  ```toml\n  [accounts.outlook]\n  left.backend.type = \"maildir\"\n  left.backend.root-dir = \"~/.Mail/outlook\"\n\n  right.backend.type = \"imap\"\n  right.backend.host = \"outlook.office365.com\"\n  right.backend.port = 993\n  right.backend.login = \"example@outlook.com\"\n  right.backend.auth.type = \"oauth2\"\n  right.backend.auth.client-id = \"*****\"\n  right.backend.auth.auth-url = \"https://login.microsoftonline.com/common/oauth2/v2.0/authorize\"\n  right.backend.auth.token-url = \"https://login.microsoftonline.com/common/oauth2/v2.0/token\"\n  right.backend.auth.pkce = true\n  right.backend.auth.scope = \"https://outlook.office.com/IMAP.AccessAsUser.All\"\n  ```\n\n  Running `neverest configure outlook` will complete your OAuth 2.0 setup and ask for your client secret.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eiCloud Mail\u003c/summary\u003e\n\n  From the [iCloud Mail](https://support.apple.com/en-us/HT202304) support page:\n\n  - IMAP port = `993`.\n  - IMAP login = name of your iCloud Mail email address (for example, `johnappleseed`, not `johnappleseed@icloud.com`)\n\n  ```toml\n  [accounts.icloud]\n  left.backend.type = \"maildir\"\n  left.backend.root-dir = \"~/.Mail/icloud\"\n\n  right.backend.type = \"imap\"\n  right.backend.host = \"imap.mail.me.com\"\n  right.backend.port = 993\n  right.backend.login = \"johnappleseed\"\n  right.backend.auth.type = \"password\"\n  right.backend.auth.raw = \"*****\"\n  ```\n\n  Keeping your password inside the configuration file is good for testing purpose, but it is not safe. You have 2 better alternatives:\n\n  - Save your password in any password manager that can be queried via the CLI:\n\n    ```toml\n    right.backend.auth.cmd = \"pass show icloud\"\n    ```\n\n  - Use the global keyring of your system (requires the `keyring` cargo feature):\n\n    ```toml\n    right.backend.auth.keyring = \"icloud-example\"\n    ```\n\n    Running `neverest configure icloud` will ask for your IMAP password, just paste the one generated previously.\n\n\u003c/details\u003e\n\n## FAQ\n\n\u003cdetails\u003e\n  \u003csummary\u003eHow to debug Neverest CLI?\u003c/summary\u003e\n\n  The simplest way is to use `--debug` and `--trace` arguments.\n\n  The advanced way is based on environment variables:\n\n  - `RUST_LOG=\u003clevel\u003e`: determines the log level filter, can be one of `off`, `error`, `warn`, `info`, `debug` and `trace`.\n  - `RUST_SPANTRACE=1`: enables the spantrace (a span represent periods of time in which a program was executing in a particular context).\n  - `RUST_BACKTRACE=1`: enables the error backtrace.\n  - `RUST_BACKTRACE=full`: enables the full error backtrace, which include source lines where the error originated from.\n\n  Logs are written to the `stderr`, which means that you can redirect them easily to a file:\n\n  ```\n  RUST_LOG=debug neverest 2\u003e/tmp/neverest.log\n  ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eHow the wizard discovers IMAP configs?\u003c/summary\u003e\n\n  All the lookup mechanisms use the email address domain as base for the lookup. It is heavily inspired from the Thunderbird [Autoconfiguration](https://udn.realityripple.com/docs/Mozilla/Thunderbird/Autoconfiguration) protocol. For example, for the email address `test@example.com`, the lookup is performed as (in this order):\n\n  1. check for `autoconfig.example.com`\n  2. look up of `example.com` in the ISPDB (the Thunderbird central database)\n  3. look up `MX example.com` in DNS, and for `mx1.mail.hoster.com`, look up `hoster.com` in the ISPDB\n  4. look up `SRV example.com` in DNS\n  5. try to guess (`imap.example.com`…)\n\u003c/details\u003e\n\n## Sponsoring\n\n[![nlnet](https://nlnet.nl/logo/banner-160x60.png)](https://nlnet.nl/)\n\nSpecial thanks to the [NLnet foundation](https://nlnet.nl/) and the [European Commission](https://www.ngi.eu/) that helped the project to receive financial support from various programs:\n\n- [NGI Assure](https://nlnet.nl/project/Himalaya/) in 2022\n- [NGI Zero Entrust](https://nlnet.nl/project/Pimalaya/) in 2023\n- [NGI Zero Core](https://nlnet.nl/project/Pimalaya-PIM/) in 2024 *(still ongoing)*\n\nIf you appreciate the project, feel free to donate using one of the following providers:\n\n[![GitHub](https://img.shields.io/badge/-GitHub%20Sponsors-fafbfc?logo=GitHub%20Sponsors)](https://github.com/sponsors/soywod)\n[![Ko-fi](https://img.shields.io/badge/-Ko--fi-ff5e5a?logo=Ko-fi\u0026logoColor=ffffff)](https://ko-fi.com/soywod)\n[![Buy Me a Coffee](https://img.shields.io/badge/-Buy%20Me%20a%20Coffee-ffdd00?logo=Buy%20Me%20A%20Coffee\u0026logoColor=000000)](https://www.buymeacoffee.com/soywod)\n[![Liberapay](https://img.shields.io/badge/-Liberapay-f6c915?logo=Liberapay\u0026logoColor=222222)](https://liberapay.com/soywod)\n[![thanks.dev](https://img.shields.io/badge/-thanks.dev-000000?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQuMDk3IiBoZWlnaHQ9IjE3LjU5NyIgY2xhc3M9InctMzYgbWwtMiBsZzpteC0wIHByaW50Om14LTAgcHJpbnQ6aW52ZXJ0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05Ljc4MyAxNy41OTdINy4zOThjLTEuMTY4IDAtMi4wOTItLjI5Ny0yLjc3My0uODktLjY4LS41OTMtMS4wMi0xLjQ2Mi0xLjAyLTIuNjA2di0xLjM0NmMwLTEuMDE4LS4yMjctMS43NS0uNjc4LTIuMTk1LS40NTItLjQ0Ni0xLjIzMi0uNjY5LTIuMzQtLjY2OUgwVjcuNzA1aC41ODdjMS4xMDggMCAxLjg4OC0uMjIyIDIuMzQtLjY2OC40NTEtLjQ0Ni42NzctMS4xNzcuNjc3LTIuMTk1VjMuNDk2YzAtMS4xNDQuMzQtMi4wMTMgMS4wMjEtMi42MDZDNS4zMDUuMjk3IDYuMjMgMCA3LjM5OCAwaDIuMzg1djEuOTg3aC0uOTg1Yy0uMzYxIDAtLjY4OC4wMjctLjk4LjA4MmExLjcxOSAxLjcxOSAwIDAgMC0uNzM2LjMwN2MtLjIwNS4xNTYtLjM1OC4zODQtLjQ2LjY4Mi0uMTAzLjI5OC0uMTU0LjY4Mi0uMTU0IDEuMTUxVjUuMjNjMCAuODY3LS4yNDkgMS41ODYtLjc0NSAyLjE1NS0uNDk3LjU2OS0xLjE1OCAxLjAwNC0xLjk4MyAxLjMwNXYuMjE3Yy44MjUuMyAxLjQ4Ni43MzYgMS45ODMgMS4zMDUuNDk2LjU3Ljc0NSAxLjI4Ny43NDUgMi4xNTR2MS4wMjFjMCAuNDcuMDUxLjg1NC4xNTMgMS4xNTIuMTAzLjI5OC4yNTYuNTI1LjQ2MS42ODIuMTkzLjE1Ny40MzcuMjYuNzMyLjMxMi4yOTUuMDUuNjIzLjA3Ni45ODQuMDc2aC45ODVabTE0LjMxNC03LjcwNmgtLjU4OGMtMS4xMDggMC0xLjg4OC4yMjMtMi4zNC42NjktLjQ1LjQ0NS0uNjc3IDEuMTc3LS42NzcgMi4xOTVWMTQuMWMwIDEuMTQ0LS4zNCAyLjAxMy0xLjAyIDIuNjA2LS42OC41OTMtMS42MDUuODktMi43NzQuODloLTIuMzg0di0xLjk4OGguOTg0Yy4zNjIgMCAuNjg4LS4wMjcuOTgtLjA4LjI5Mi0uMDU1LjUzOC0uMTU3LjczNy0uMzA4LjIwNC0uMTU3LjM1OC0uMzg0LjQ2LS42ODIuMTAzLS4yOTguMTU0LS42ODIuMTU0LTEuMTUydi0xLjAyYzAtLjg2OC4yNDgtMS41ODYuNzQ1LTIuMTU1LjQ5Ny0uNTcgMS4xNTgtMS4wMDQgMS45ODMtMS4zMDV2LS4yMTdjLS44MjUtLjMwMS0xLjQ4Ni0uNzM2LTEuOTgzLTEuMzA1LS40OTctLjU3LS43NDUtMS4yODgtLjc0NS0yLjE1NXYtMS4wMmMwLS40Ny0uMDUxLS44NTQtLjE1NC0xLjE1Mi0uMTAyLS4yOTgtLjI1Ni0uNTI2LS40Ni0uNjgyYTEuNzE5IDEuNzE5IDAgMCAwLS43MzctLjMwNyA1LjM5NSA1LjM5NSAwIDAgMC0uOTgtLjA4MmgtLjk4NFYwaDIuMzg0YzEuMTY5IDAgMi4wOTMuMjk3IDIuNzc0Ljg5LjY4LjU5MyAxLjAyIDEuNDYyIDEuMDIgMi42MDZ2MS4zNDZjMCAxLjAxOC4yMjYgMS43NS42NzggMi4xOTUuNDUxLjQ0NiAxLjIzMS42NjggMi4zNC42NjhoLjU4N3oiIGZpbGw9IiNmZmYiLz48L3N2Zz4=)](https://thanks.dev/soywod)\n[![PayPal](https://img.shields.io/badge/-PayPal-0079c1?logo=PayPal\u0026logoColor=ffffff)](https://www.paypal.com/paypalme/soywod)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpimalaya%2Fneverest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpimalaya%2Fneverest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpimalaya%2Fneverest/lists"}