ElectronMail is an Electron-based unofficial desktop client for ProtonMail. 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. See details in #183.
⚙️ Cross platform. The app works on Linux/OSX/Windows platforms. Binary installation packages located here.
🔎 Full-text search. Including email body content scanning capability. Enabled with v2.2.0 release. See the respective issue for details.
🔎 JavaScript-based/unlimited messages filtering. Enabled since v4.11.0 release. See the respective #257 for details. Requires local store feature to be enabled.
📦 Offline access to the email messages (attachments content not stored locally, but emails body content). The local store feature enables storing your messages in the encrypted database.bin file (see FAQ for file purpose details). So the app allows you to view your messages offline, running full-text search against them, exporting them to EML/JSON files. etc. Enabled since v2.0.0 release.
📫 Multi accounts support including supporting individual API entry points. For example, you can force the specific email account added in the app connect to the email provider via the Tor only by selecting the Tor version 3 address API entry point in the dropdown list and configuring a proxy as described in this message.
🔓 Automatic login into the app with a remembered the system keychain remembered master (keep me signed in feature). Integration with as a system keychain is done with the keytar module. By the way, on Linux KeePassXC implements the Secret Service interface and so it can be acting as a system keychain (for details, see the "automatic login into the app"-related point in the FAQ).
🔓 Automatic login into the email accounts, including filling 2FA tokens. Two auto-login delay scenarios supported in order to make it harder to correlate the identities, see the respective issue.
🔓 Persistent email account sessions. The feature introduced since v4.2.0 version with the experimental label, #227. The feature enables the scenario when you to enter the account credentials on the login form only once, manually or automatically by the app, and then you never see the login form anymore for this email account even if you restart the app (unless you explicitly dropped the session in the admin area or it got dropped by the service due to the inactivity/expiration). If this feature is enabled for the account, manual credentials filling is the preferred option as a more secure option since you don't save the account credentials anywhere (credentials are encrypted though even if saved, see settings.bin file description in the FAQ).
🔐 Encrypted local storage with switchable predefined key derivation and encryption presets. Argon2 is used as the default key derivation function.
⚙️ Switchable accounts handle buttons positioning (top , left, left-thin). See details in #36 and #175. Demo screenshots placed in the images folder (specifically this image).
📦 Batch emails export to EML files (attachments can optionally be exported in online / live mode, not available in offline mode since not stored locally). Feature released with v2.0.0-beta.4 version, requires local store feature to be enabled.
🔐 Built-in/prepackaged web clients. The prepackaged with the app proton web clients assembled from source code, see the respective official repositories. See 79 and 80 issues for details.
⚙️ Configuring proxy per account support. Enabled since v3.0.0 release. See 113 and 120 issues for details.
🌔 Dark mode support. See details in #242.
🔔 System tray icon with a total number of unread messages shown on top of it. Enabling local store improves this feature, see #30.
⚙️ Starting minimized to tray and closing to tray opt-out features.
🔔 Native notifications for individual accounts clicking on which focuses the app window and selects respective account in the accounts list.
📆 Calendar notifications / alarms regardless of the open page (mail/calendar/settings/account/drive). The opt-in feature has been enabled since v4.9.0. See #229 for details.
😎 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. See #312 for details.
😎 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.
😎 Per-account custom CSS injection (per-account styling). Enabled since v4.10.0. See #355 for details.
📝 Spell Checking.
Windows and Linux