ElectronMail is an Electron-based unofficial desktop client for ProtonMail (https://protonmail.com/). The app aims to provide enhanced desktop user experience enabling features that are not supported by the official in-browser web clients. It is written in TypeScript and uses Angular.
- Open Source.
- Reproducible builds.
- Cross platform. The app works on Linux/OSX/Windows platforms.
- Full-text search. Enabled with v2.2.0 release https://github.com/vladimiry/ElectronMail/releases/tag/v2.2.0. See the respective issue for details https://github.com/vladimiry/ElectronMail/issues/92.
- Offline access to the email messages (attachments content not stored locally, but emails body content).
- Persistent email account sessions.
- Multi accounts support per each email provider including supporting individual entry point domains (https://github.com/vladimiry/ElectronMail/issues/29).
- Automatic login into the app with a remembered master password using https://github.com/atom/node-keytar module (keep me signed in feature).
- Automatic login into the email accounts, including filling 2FA tokens (https://github.com/vladimiry/ElectronMail/issues/10).
- Encrypted local storage with switchable predefined key derivation and encryption presets. Argon2 is used as the default key derivation function.
- Native notifications for individual accounts clicking on which focuses the app window and selects a respective account in the accounts list.
- System tray icon with a total number of unread messages shown on top of it. Enabling local messages store improves this feature (how to enable - https://github.com/vladimiry/ElectronMail/releases/tag/v2.0.0-beta.1), see respective issue https://github.com/vladimiry/ElectronMail/issues/30.
- Starting minimized to tray.
- Closing to tray.
- Switchable accounts handle buttons positioning (vertical, horizontal and horizontal-dropdown). See details here https://github.com/vladimiry/ElectronMail/issues/36 and screenshots in the images folder here https://github.com/vladimiry/ElectronMail/tree/master/images.
- Batch emails export to EML files. Feature released with v2.0.0-beta.4 version (https://github.com/vladimiry/ElectronMail/releases/tag/v2.0.0-beta.4), requires
local messages storefeature to be enabled (see how to enable here https://github.com/vladimiry/ElectronMail/releases/tag/v2.0.0-beta.1).
- Built-in/prepackaged web clients. The built-in web clients are built from source code, see respective official Protonmail (https://github.com/ProtonMail/WebClient) repository. See https://github.com/vladimiry/ElectronMail/issues/79 and https://github.com/vladimiry/ElectronMail/issues/80 issues for details.
- Configuring proxy per account support. Enabled since v3.0.0 release https://github.com/vladimiry/ElectronMail/releases/tag/v3.0.0. See https://github.com/vladimiry/ElectronMail/issues/113 and https://github.com/vladimiry/ElectronMail/issues/120 issues for details.
- Spell Checking.
- Dark mode support.
- Calendar notifications / alarms regardless of the open page (mail/calendar/settings/account/drive).
- Making all email "read" in a single mouse click. Enabled since v3.8.0. Requires local store feature to be enabled.
- Routing images through proxy. The opt-in feature has been enabled since v4.9.0.
- Batch mails removing bypassing the trash. Enabled since v4.9.0. Requires local store feature to be enabled.
- Batch mails moving between folders. Enabled since v4.5.0. Requires local store feature to be enabled.
NOTE: To use the Keep me signed in feature please enable the password manager service by either running the following command in the terminal or by clicking on the "Permissions" button:
sudo snap connect electron-mail:password-manager-service
This is required to connect the snap with the system's default keyring to save and access encrypted passwords securely.