Skip to content

vladimiry/ElectronMail

Repository files navigation

email-securely-app

is built with Electron unofficial desktop app for ProtonMail and Tutanota E2E encrypted email providers, basically a wrapper around their web interfaces.

Build Status: Linux / MacOS Build status: Windows

You can see below a screenshots of the compact and default view modes:

view-compact

view-default

Features

  • Cross platform, Linux/OSX/Windows packages provided.
  • Multi email providers support.
  • Multi accounts support per each email provider. Individual entry point domain selection is enabled.
  • Automatic login into the app with remembered master password using keytar module ("Keep me signed in" feature).
  • Automatic login into mail provider accounts using either saved in the settings password or KeePass password manager. Two-factor authentication (2FA) is supported, only TOTP tokens format, original issue.
  • Encrypted settings 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 respective account in the accounts list.
  • System tray icon with a total number of unread messages shown on top of it. Checking unread emails count for Tutanota is currently not efficient enough, respective issue has been placed.
  • Start minimized to tray.
  • Close to tray.
  • Compact view mode.

Build your own package

  • Regardless of the platform you are working on, you will need to have Node.JS v8 installed. Version 8 is required to match the Node.JS version Electron comes with. If you already have Node.JS installed, but not the version 8, then you might want you to use Node Version Manager to be able to switch between multiple Node.JS versions:
    • Install NVM.
    • Run nvm instal 8.
    • Run nvm use 8.
  • keytar module requires compiling prebuild node files and for that Python and C++ compiler need to be installed on your system:
    • On Windows: the simplest way to install all the needed stuff on Windows is to run npm install --global --production windows-build-tools CLI command.
    • On Linux: python v2.7, make and a C/C++ compiler toolchain, like GCC are most likely already installed. Besides there is a need to install libsecret dependency, see Installing section here.
    • On Mac OS X: python v2.7 and Xcode need to be installed. You also need to install the Command Line Tools via Xcode, can be found under the Xcode -> Preferences -> Downloads menu.
  • Clone this project to your local device. If you are going to contribute, consider cloning the forked into your own GitHub account project.
  • Install dependencies running yarn.
  • Build app running yarn run app:dist. It's better to not touch a mouse during the process, since it might interfere with the e2e tests running at the end of the process.
  • Build a package to install running yarn run electron-builder:dist command to build Windows/Mac OS X package and one of the following commands to build Linux package:
    • yarn run electron-builder:dist:linux:appimage
    • yarn run electron-builder:dist:linux:deb
    • yarn run electron-builder:dist:linux:freebsd
    • yarn run electron-builder:dist:linux:pacman
    • yarn run electron-builder:dist:linux:rpm
    • yarn run electron-builder:dist:linux:snap
  • If you don't need a package to install, but a folder to execute app from, simply run yarn run electron-builder:dir command.
  • Binary executable, whether it's a folder or package to install, comes into the ./dist folder.