vladimiry / electronmail Goto Github PK
View Code? Open in Web Editor NEWUnofficial ProtonMail Desktop App
License: GNU General Public License v3.0
Unofficial ProtonMail Desktop App
License: GNU General Public License v3.0
The change doesn't break the app completely but only affects the reactive event processing logic. Which means currently if any update happened the local app cache won't notice the change immediately. So local cache update reactivity got broken.
There are 3 events fetching triggers enabled and so local app cache still gets the updates but with 3 minutes lag:
window.online
event - this one is functional.Hi,
I like your app, would it be possible for protonmail tab have the inner window focused?
I can't use the protonmail's J, K keys for navigation right after the window pops up. I have to use mouse to click anywhere inside the protonmail window view to have J, K keyboard navigation.
I use Arch linux, so I cannot comment about other platforms.
Hello, thanks for this app, works great on linux and I like the auto-login feature which other alternative community protonmail electron apps don't provide. I'm looking to make an AUR package for it (Manjaro, Antergos and Arch).
Now, I noticed that on macOS there are a few issues:
Context menu (right click action) shows the menu for half a second and then it disappears and copy/pasting (via cmd + c/v) is not possible on the settings page:
Keep it up, nice work so far.
os: manjaro kde.
installed yesterday on my home pc and it worked great, now installing it on my laptop gives me these error.
the app wont even run unless called with sudo on the terminal.
got these terminal errors:
`(email-securely-app:2046): libappindicator-WARNING **: 11:46:55.647: Unable to get the session bus: Unknown or unsupported transport “disabled” for address “disabled:”
(email-securely-app:2046): LIBDBUSMENU-GLIB-WARNING **: 11:46:55.647: Unable to get session bus: Unknown or unsupported transport “disabled” for address “disabled:”
`
Thanks for the repo, I've tried using the 0.3.1 and 0.3.2 AppImages but I'm just getting a blank window with the dev tools on the right when launching the app.
Linux 4.16.3-1-ARCH #1 SMP PREEMPT
Folder selection noticeable freezes on 300+ emails in the folder, depending on hardware resources. The straightforward approach would be in rendering emails by portions following the continuous scrolling idea. Besides, probably some logic can be improved.
v0.2.0-beta.1
Error: libsodium.so.23: cannot open shared object file: No such file or directory
at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:172:20)
at Object.Module._extensions..node (module.js:598:18)
at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:186:18)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
at Module.require (module.js:513:17)
at require (internal/module.js:11:18)
at load (/opt/protonmail-desktop-app/resources/app.asar/node_modules/node-gyp-build/index.js:13:10)
at Object. (/opt/protonmail-desktop-app/resources/app.asar/node_modules/sodium-native/index.js:1:194)
Desktop notifications feature doesn't work with portable packages. So it makes sense to stop shipping packages of such kind in order to avoid issues like this happening.
pretty much the title
being able to put the different mail-addresses in a specific order would be nice
right now the only way to do this is to remove your email-accounts and re-add them in the correct order
Unhandled Promise Rejection
Error: Cannot find module '../tray'
at Function.Module._resolveFilename (/opt/protonmail-desktop-app/resources/electron.asar/common/reset-search-paths.js:35:12)
at Object.get [as Tray] (/opt/protonmail-desktop-app/resources/electron.asar/browser/api/exports/electron.js:11:16)
at Object. (/opt/protonmail-desktop-app/resources/app.asar/app/electron/main/index.js:1697:36)
at Generator.next ()
at /opt/protonmail-desktop-app/resources/app.asar/app/electron/main/index.js:208:71
at Promise ()
Keepass integration as not really demanding feature especially considering that it's not enabled for the master password (by design). So it's going to be dropped with v2 release.
using tabs instead of the dropdown menu for the account switcher would improve usability in the compact view
Am I the only one experiencing a total lack of copy and paste functionality? It's definitely annoying for password input, but mostly for day to day copying of peoples words in emails...
NSIS installer is still broken in version 0.2.3. In version 0.2.2 the crash was immediately after I tried to run the exe. In version 0.2.3 the crash is after I click "next" if option "Only for me (username)" is selected. And weird thing is, if I choose "Anyone who uses this computer (all users)", then click next, then click back, change to "Only for me (username)" and click "next" again, then there is no crash.
I've noticed if I check "keep me signed in" on the login screen, it doesn't stay logged in forever. Usually after few days and few PC restarts it needs to enter the master password again.
It's because currently a unique key during reducing individual account form the list is still just a login, but having multiple email providers supported it should be a compound key=(emailProviderType = "protonmail | tutanota", login).
Workaround is simply to use login with domain added, like root
@protonmail.ch and root
@tutanota.de, not just root
.
Since version 1.2.0 there is back this problem - #5
Up to version 1.1.1 everything is ok.
Hi, I'm trying this software on Win 7 64bit and this software is creating on every start new temp .node file in the windows temp folder. Problem is this file is temporary binary executable file with random file name and that's the reason I cannot create for it proper rules in my security software. It's simply new file again and again and I need to create/confirm these rules again and again. Is there chance to change this behaviour in future builds?
Are there plans to have a website about this app so people can find it easier and not have to navigate through a GitHub page?
download-numbers-font.ts
Lets make it google-free.
Thank you
The only way to hide/unhide app right now is to click on the icon in the menu bar and select toggle window.
I did some googling and found that if you install gnome keyring this issue is fixed. However, I'm using KDE and its own keyring manager (Kde Wallet). Any way to get this app working with that instead?
Please make ready-made application builds, too much to install to build new versions of the application.
Errors like:
[protonmail]
503 error with Service Unavailable
status text. Calls to Protonmail's API, unfortunately, quite often end up with such error.The goal is to make such errors handling less annoying to the end user and with no functionality loss.
Hi,
if one uses additional email aliases (protonmail premium feature) no desktop notification is shown, although the app recognizes the unread count correctly.
Note that the notification works with the free [email protected] address but not with custom aliases.
I have in my firewall enabled only https connection to mail.protonmail.com for this application. Everything works fine, but i've noticed in firewall log, that program constantly tries to connect also to these addresses. See blocked connections on this screenshot:
https://lut.im/Mu2eD4ZyNo/5rpxPJJHUpmTFgsJ.png
Why are there these connection attempts and how can I disable them in the settings?
I have several accounts logged in the older version. How do I migrate them to newer version?
Hello, for the desktop notifications on Windows 10 doesn't appear to be working. When I receive an email, there will be a little red circle on the app's icon on the taskbar. However, there is no desktop notification like ones windows give through notification centre. Is this a bug? I have enabled the "Unread messages desktop notifications" settings and I do not have Do not disturb on windows turned on.
It currently works properly only in one case - Tutanota accounts view. Might be related to the recent Electron.js version upgrade.
The workaround is using copy hotkey instead of the menu action, like ctrl+c
.
Here is the issue related to the original implementation #11
Tutanota has just recently changed WebClient code, so we have to catch up with the change by updating the 2fa form detection css selectors.
The name email-securely-app doesn't sound like an attractive one. Would suggest changing that to something better.
Hello,
I am a tutanota user and I need to make your client the default client in Windows.
I have a program that exports images straight to the associated default desktop mail client, so I do not need to first export the images to desktop and then to import them to the desktop client.
I use win 7 pro and win 10 home.
It seems I can make your app the default client.
Please inform.
Provided error log:
Unhandled Promise Rejection Error: Cannot find module '../tray' at Function.Module._resolveFilename (/opt/protonmail-desktop-app/resources/electron.asar/common/reset-search-paths.js:35:12) at Object.get as Tray at Object.<anonymous> (/opt/protonmail-desktop-app/resources/app.asar/app/electron/main/index.js:1665:36) at Generator.next (<anonymous>) at /opt/protonmail-desktop-app/resources/app.asar/app/electron/main/index.js:207:71 at Promise (<anonymous>)
Hey, still no luck with the new version with regards to copy and paste functionality.
Protonmail has a Tor Hidden Service since early 2017 (https://protonirockerxow.onion/, as described here: https://protonmail.com/tor).
It would be nice if protonmail-desktop-app had an option to connect through onion address instead of mail.protonmail.com for extra privacy for TOR users (no need for stream isolation, no exit node)
Also, as .com TLD is owned by USA, i'd recommend to use "app.protonmail.ch" instead of "mail.protonmail.com" as default domain. this is the original hostname for protonmail service, and it is owned by switzerland as are they server, so we keep theorical attack surface smaller (read this: https://protonmail.com/support/knowledge-base/what-is-the-difference-between-protonmail-com-and-protonmail-ch/).
I am used to submit pull requests, but i took a look in the code and have been scared as i never wrote a single line of typescript :/
Anyway, your tool is one of the rare tools that allows automatic connection to protonmail, and it is super nice. Thank you for the awesome work.
Not sure which version caused the regression since I haven't been updating the app on a few macs for a couple of months.
The dock icon works fine, showing the unread message count, while the system icon shows only a red dot with a white artifact.
This is just a minor issue but still wanted to report it.
Thanks.
I know chromium on linux uses xdg-open
, but I dislike xdg as I don't know how to configure it or how to set a default browser. I think maybe many other users could be left puzzled why their links are being openned in firefox instead of they default browser.
Maybe if $BROWSER would exist, use that one instead?
Just an idea mainly for linux users.
Tutanota currently doesn't provide a convenient option to get unread count value not producing additional request to the server, but listening only. Hopefully it will be improved after the tutao/tutanota#234 and tutao/tutanota#229 issues resolving. I presume unread value will be provided by backend as a stream.
As for now, getting unread emails count in this app for Tutanota is done as Rest API polling, interval is 60 seconds. Checking of only the most 50 recent messages is happening and only in the inbox
folder. So If there are unread messages, then it will be shown by app, but possible older unread messages or messages in other folders will not be taken into the account. Number 50 can be increased, but that will increase load on Tutanota Rest API.
It's because Protonmail API has just stopped serving message.IsRead
property which app reads setting the unread state of the message. The fix would be in reading the message.Unread
property instead.
If app is running and minized in the tray arrea, running the cli command ~$ email-securely-app
will correctly shows the windows however this takes a long time :(
But if I click on the tray arrea the windows is drawn instantly.
I want to toggle email-securely-app from keyboard shortcut and my script is looking like this
#!/bin/bash
FOUNDONE=0
wmctrl -l | grep "Unofficial desktop app for E2E encrypted email providers"
if [ $? -eq 0 ]; then ((FOUNDONE++))
fi
echo $FOUNDONE
if [ $FOUNDONE -eq 0 ]; then
email-securely-app
else
wmctrl -c "Unofficial desktop app for E2E encrypted email providers"
fi
But I have to wait half a second until the windows is raised.
Is there some signal I could send to the running app that would have the same effect as the "toogle window" option in the tray menu?
all the app data
means including stuff that Electron generates in app data folder (you can go to this folder clicking Open Settings Folder
app/tray menu item). App strives to avoid persistence of any sensitive data in web related storages (IndexedDB, Cookies, LocalStorage, etc) going with in-memory / default webview persistence mode (in contrast of how for example Rambox does it). This is why app has to login into the email accounts each time being opened. But still, some information saved by Electron in app data folder might be considered as sensitive.
Full app data folder encryption can be done manually of courses, for example, using tools like gocryptfs / cppcryptfs / sirikali, and I guess some users already go with either similar overlay filesystems or full disk encryption. But it would be nice if this app would be capable to mount/unmount encrypted file systems by its own with an already used master password and CLI of the mentioned above gocryptfs/cppcryptfs tools.
For example, having such a feature implemented and undisabable there would be no need to care about enabling encryption explicitly in all the different cases, like keeping a messages database in memory. But even if support of encrypted overlay filesystem will be enabled in this app, it's not going to be undisabable, since it brings a certain level of inconvenience (a need to install additional tools), brings more runtime dependencies, and can be already done by user manually (though using one more password).
This is considered as a priority one missed major feature:
.eml
format.There potentially might be many email messages content getting options, like at least:
email view actions
happening in the email provider's UI, also very limited option. The good part is that it would work in a fully passive mode, not producing addition requests to the email provider's backend. But in JavaScript it's not always possible to listen/intercept all the needed actions happening, especially if the code is implemented with an intention to prevent interception happening. Besides going with such option we can only get content of the email message that has ever been explicitly opened/viewed by a user. The simplest in implementation option though.At the initial stage it's not going to be a comprehensive bridge-like thing, but more like email provider's web UI supporting thing. The initial implementation is not going to keep locally stored messages in sync with the server/actual state. Means it would be a one-off putting to local cache action, with no further message state updating (message got unread state, got removed, got changed folder/label, etc).
A brief workflow steps description:
lastFetchedEmailItemCreateTime
-like, portion size and sort order parameters, depending on the email provider's API endpoints format. That lastFetchedEmailItemCreateTime
parameter would be added as a portion start request parameter. So app doesn't fetch the same messages twice. If we go with fetching all the messages during each job iteration, we can keep locally cached messages in sync with the server/actual state, but a more optimal approach would be in going with message state changing queue. So app as a client gets notified about some message state change action happened and patches locally saved message accordingly, but this can't be implemented having no control on the backend, but looks like at least Tutanota has it implemented already (see EntityEventBatchTypeRef
entities fetching).settings.bin
file.A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.