Giter VIP home page Giter VIP logo

nylas-mail's Introduction

Nylas Mail - the open-source, extensible mail client

⚠️ Not Maintained & no longer secure: The current maintainers of this repo no longer have the ability to devote their time to maintaining this project. There are currently multiple vulnerable dependencies and it is highly recommended that you take a look at Mailspring. Mailspring is the spiritual successor of Nylas Mail, and is maintained by the original creator. You will find that Mailspring is very similar, and much more secure than Nylas Mail Lives. This project is now in Archive Mode.

N1 Screenshot

Nylas Mail is an open-source mail client built on the modern web with Electron, React, and Flux.

It is designed to be extensible, so it's easy to create new experiences and workflows around email.

Want to learn more? Check out the full documentation.

Download Nylas Mail Lives

You can download the latest release of Nylas Mail Lives here.

⚠️ Please note that these releases currently have no update functionality. In order to get bug fixes and new features you will need to manually reinstall the package from the above link.

To our Arch Linux friends, a community member has generously created an AUR package.

This is a Fork

This is a fork from the project currently hosted at nylas/nylas-mail. A bunch of developers who really liked this open source project got upset on this issue thread and wondered if they could contribute to the project, as the main development team had stopped to look into issues and pull requests from the community.

Our main objective is to maintain this amazing project alive and actively accepting contributions from the community. We believe this is the true life behind any open source endeavour.

We are still figuring out how to manage this fork, our relationship with the original repository maintainers, how to deploy and etc. We welcome contributions of all kinds as we try to get the house in order.

We will, naturally, honor the licenses as they were written by Nylas on the original project.

Build A Plugin

  1. Install Node 6+ via NodeSource (trusted):
  2. curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
  3. sudo apt-get install -y nodejs
  4. Install Redis locally sudo apt-get install -y redis-server redis-tools benefit of letting us use subdomains.
  5. npm install

Running Nylas Mail

  1. npm run client: Starts the app
  2. npm run test-client: Run the tests
  3. npm run lint-client: Lint the source (ESLint + Coffeelint + LESSLint)

Exploring the Source

This repository contains the full source code to the Nylas Mail client and it's backend services. It is divided into the following packages:

  1. Isomorphic Core: Shared code across local client and cloud servers
  2. Client App: The main Electron app for Nylas Mail mirrored to open source repo.
  3. Client Sync: The local mailsync engine integreated in Nylas Mail
  4. Cloud API: The cloud-based auth and metadata APIs for N1
  5. Cloud Core: Shared code used in all remote cloud services
  6. Cloud Workers: Cloud workers for services like send later

See /packages for the separate pieces. Each folder in /packages is designed to be its own stand-alone repository. They are all bundled here for the ease of source control management.

Digging Deeper

In early 2016, the Nylas Mail team wrote extensive documentation for the app that was intended for plugin developers. This documentation lives on GitHub Pages and offers a great overview of the app's architecture and important classes. Here are some good places to get started:

The team has also given conference talks and published blog posts about the client:

Running the Cloud

When you download and build Nylas Mail from source it runs without its cloud components. The concept of a "Nylas ID" / subscription has been removed, and plugins that require server-side processing are disabled by default. (Plugins like Snooze, Send Later, etc.)

In order to use these plugins and get the full Nylas Mail experience, you need to deploy the backend infrastructure located in the cloud-* packages. Deploying these services is challenging because they are implemented as microservices and designed to be run at enterprise scale with Redis, Postgres, etc. Because these backend services must access your email account, it is also important to use security best-practices (at the very least, SSL, encryption at rest, and a partitioned VPC). For more information about building and deploying this part of the stack, check out the cloud-core README.

Themes

The Nylas Mail user interface is styled using CSS, which means it's easy to modify and extend. Nylas Mail comes stock with a few beautiful themes, and there are many more which have been built by community developers

Bundled Themes

Community Themes

Installing Community Themes

  1. Download and unzip the repo
  2. In Nylas Mail, select Developer > Install a Package Manually...
  3. Navigate to where you downloaded the theme and select the root folder. The theme is copied into the ~/.nylas-mail folder for your convenience
  4. Select Change Theme... from the top level menu, and you'll see the newly installed theme. That's it!

Want to dive in more? Try creating your own theme!

Plugin List

We're working on building a plugin index that makes it super easy to add them to Nylas Mail. For now, check out the list below! (Feel free to submit a PR if you build a plugin and want it featured here.)

Bundled Plugins

Great starting points for creating your own plugins!

Community Plugins

Note these are not tested or officially supported by Nylas, but we still think they are really cool!

If you find bugs with them, please open GitHub issues on their individual project pages, not the Nylas Mail (N1) repo page.

Thanks!

When you install packages, they're moved to ~/.nylas-mail/packages, and Nylas Mail runs apm install on the command line to fetch dependencies listed in the package's package.json

Feature Requests / Plugin Ideas

Have an idea for a package or a feature you'd love to see in Nylas Mail?

Search for existing GitHub issues and join the conversation!

Contributing

If you would like to contribute to the project, but aren't sure where to start, please take a look at the Guide.

nylas-mail's People

Contributors

agsdot avatar bengotow avatar courajs avatar dillonforrest avatar dregitsky avatar dweremeichik avatar e2corporation avatar emorikawa avatar flyingclimber avatar gm-polyakov avatar grinich avatar jackiehluo avatar jamiewilson avatar jathpala avatar jerm avatar jstejada avatar kartiktalwar avatar kevinmartin avatar khamidou avatar lihram avatar logandavis avatar mattskala avatar mbilker avatar mikeseese avatar nirmit avatar pfista avatar sbstnmsch-zz avatar simonft avatar spang avatar step21 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nylas-mail's Issues

Email file attachment with name but without filename don't propose a filename to save to

Are there any related issues?

No

What operating system are you using?

Ubuntu GNU/Linux

What version of Nylas Mail are you using?

2.0.32

Bug?

Do you have any third-party plugins installed? If so, which ones?

No

Is the issue related to a specific email provider (Gmail, Exchange, etc.)?

own smtp/imap server

Is the issue reproducible with a particular attachment, message, signature,

Works:

--94eb2c119674916442054aeac5ea--
--94eb2c119674916443054aeac5eb
Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document; 
	name="blabla.docx"
Content-Disposition: attachment; 
	filename="blabla.docx"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_j0do1vml0

Doesn't work

----boundary_4060_393e7579-1433-4fbe-be10-6501871e1a8e
Content-Type: application/pdf; name=blabla.pdf
Content-Transfer-Encoding: base64
Content-Disposition: attachment

attachments which name contains accents are named as 'Unnamed Attachment'

Are there any related issues?

nylas/nylas-mail#3577 maybe?

What operating system are you using?

macOS Sierra (10.12.5)

What version of Nylas Mail are you using?

2.1.0

--

Bug?

Do you have any third-party plugins installed? If so, which ones?

No

Is the issue related to a specific email provider (Gmail, Exchange, etc.)?

No

Is the issue reproducible with a particular attachment, message, signature, etc?

It happens with attachments which name contains accents:

attachment with accént.txt

attachment without accent.txt

screen shot 2017-07-18 at 10 17 16 pm

Setup code coverage & reporting.

It has become apparent that we need proper automated testing and code coverage reports. This issue is a request for the latter.

Refine Linux build docs.

The linux build docs need some rework. Version needs to be 6.9 for node. Environment variables need to be set.

"Remove Queued Tasks" button doesn't work

There is the button called "Remove Queued Tasks" in Activity and it doesn't work right now.
It's really critical because in a case of frozen tasks (which is happening sometimes) it's super powerful just to kill these activities.

Are there any related issues?

Just copied this issue from original repo

What operating system are you using?

Ubuntu 16.10

What version of Nylas Mail are you using?

2.0.32

Bug?

Do you have any third-party plugins installed? If so, which ones?

nope

Is the issue related to a specific email provider (Gmail, Exchange, etc.)?

nope

Nylas-mail without Nylas ID

Hi all,

I'm looking for a smart mail for a Linux environment for a long time. Nylas looks still very promising to me. But the lack of support and the enforcement to use a Nylas ID is clearly holding me up.

As you obviously plan to bring that tool back to life, is there a plan to make it completely independently and freely usable without registering a Nylas ID?

Thanks a lot,
Karlsoost

Version maintained by original author of Nylas Mail

One of the previous Nylas Mail developers is already working on a fork. I'd suggest that we combine forces (developers interested in working on it / potential donations), as to avoid working on too many different versions. Nylas Mail is a complex application and the more we can unify direction, the likelier we will end-up with a working / bug-free version of Nylas Mail.

Here's the link to his fork: https://github.com/Foundry376/Merani

screen shot 2017-08-07 at 4 44 32 pm

Could we have an open dialog on this? @bengotow

Snap Build 2.1.0

This issue is to change the version to 2.1.0 and build release binaries

O365 Needs Support For Federated Login

Gonna go ahead and make an issue for this while I'm thinking about it. O365 account setup needs to support federated login using the web form for auth like google does. My companies 2FA/Federated Login make Nylas unusable.

Evaluate feasibility of getting rid of server component

Hello, I found this fork after seeing the state of the other Nylas Mail repo.

One thing I was wondering is how hard (on a scale of: Fair amount of work - Not enough time exists in the universe) it would be to refactor Nylas Mail to deal with all mail related tasks locally on the system.

From reading some of the other repos issues it sounded like there might still be some things that a server is needed for. Maybe we could move as much as possible onto the client side and give up some features if you do not want a server.

Even somewhat "duct tape" seaming solutions might be good. Perhaps trying to leave all the client side code alone and make a server that runs next to the client on their machine.

I started looking at the source code but wasn't able to quickly tell if there was some sort of Server Interface class that made all the server requests. If so it might make sense to just replace the contents of those methods with the actual logic to retrieve messages from remote servers and such.

I would be willing to put in time to help out with this if it is feasible. This is by far the best looking email client I can find out there.

Fix CI for Linux

Currently the Linux build is failing due to issue #8.
Once that issue is resolved, the Linux "build", actually the deploy, will fail due to missing AWS keys.
We need to figure out where we want to store our builds and how we want to push updates to end users.

[Edit] It appears that we will disable the "upload" functionality.

Graph view and statistics

I think the sidebar is extremely underutilized (I am talking about the person icon). We could try to implement a few social network features. Basically building an ego-centric network based on from, to and cc'ed emails.

An example of this can be found here (there is a demo link):
https://immersion.media.mit.edu/

I have worked extensively with graphs on R and Python but not Node.js. There is however a ngraph library that we can try.

Reviewing disk read/writes when syncing email

I have noticed that when setting up a new IMAP account it takes forever to store or email locally on a regular HDD. On SSD the effect is not that visible. Thunderbird in comparison seems to be more efficient at this.

Perhaps an evaluation of reads and writes on disk is in order. My guess is indexing is probably the biggest issue here.

Fix CI for Mac OS

Currently CI for Mac OS on Travis is failing due to missing files for the code signing process.
It is also blocking the Linux build process.

  • Look into how the code signing process works
  • Remove code signing to get travis ci working again.
  • Figure out if we can create our own files to sign with (instead of using the ones from Nylas)
  • Fix the signing process.

Disable Auto-Updater for 2.1.0

We haven't addressed how we're going to do (or even if we'll support) auto-updating. This issue will disable the auto-updater until we can address this properly

Setup Windows CI

CI is not currently set up for Windows.
Look into setting up CI on Appveyor.

Support for Microsoft exchange

Feature Request?

Any plans to support exchange accounts ? This used to be a feature in nylas N1 before but was taken out from nylas-mail

CLA

Do the new maintainers want to continue to require a contributor license agreement? If they do, it would have to change from the one Nylas used and it would be less useful anyway, unless Nylas transfers their rights derived from the CLAs to the new maintainer(s) or some institution.
If they don't, the relevant documentation should be removed.

nylas fails to mark a message as seen if the flag is not exactly "SEEN"

RFC 3501 states that all token should be treated as case insensitive unless otherwise noted. This includes system flags like \Seen. However, Nylas currently looks for them with const unread = !attrs.flags.includes('\\Seen'); This means if the server uses \SEEN, it won't match.

I'm working on a fix for this.

Unable to store credentials

Recently, tried to set up again from scratch for testing. it seems I cannot get this to work anymore, it always fails with " message: 'Password Management Error: We couldn't store your password securely! For more information, visit https://support.nylas.com/hc/en-us/articles/223790028" when adding an account.
Visiting the page doesn't help. This might not be unique to the fork, but it was in this case run by the fork.
What kind of storage does it need? It might be that I disabled gnome-keyring, especially/at least for ssh because it was super annoying, but not sure why nylas would need that....
Any ideas?

UI - Popup Pane placement

What operating system are you using?

Ubuntu 17.04

What version of Nylas Mail are you using?

2.1.0

--

Feature Request?

Does this feature exist in another mail client or tool you use?

Right now any of the "panes" (chromeless windows) pop-up in the centre of your desktop area, which means on a multi-monitor setup they're often spanning multiple monitors. Would be nice to popup on either the primary monitor (for things such as the initial pane when you haven't created an account yet) or on whatever monitor the app primarily lives on.

I do realize that this may not be something that can be addressed in Nylas proper due to Electon, etc.

Choose which folders to sync and for how long.

It would be great if I could choose to only keep a local copy of some folders. An additional enhancement would allow me to say that some folders should only download emails from the past week (or another arbitrary time frame)

Merge Nylas Mail Code Dump

When Nylas announced that they were sunsetting Nylas Mail (see https://www.nylas.com/blog/sunsetting-nylas-mail-development), they pushed their private repo to GitHub as well as the changes necessary to take out cloud-api like functions.

This Pull Request merges those changes with the existing (or the majority of the existing) changes in Nylas Mail Lives

Due to the large number of conflicts to directly merge the https://github.com/nylas/nylas-mail branch, we will be rebasing off it and cherry-picking our changes ontop of that. The resulting branch is https://github.com/nylas-mail-lives/nylas-mail/tree/nylas-merge

There will likely be no Pull Request for this issue due to the issues with merging

Unable to install plugins.

When I try to install plugins I get the following error:
Running apm install failed to install package dependencies.

Are there any related issues?

No

What operating system are you using?

Windows 10

2.1.0

--

Bug? Yes

Do you have any third-party plugins installed? If so, which ones?

No (because of this bug)

Is the issue related to a specific email provider (Gmail, Exchange, etc.)?

No

Is the issue reproducible with a particular attachment, message, signature, etc?

No

Nylas occasionally fails to send due to "stored credentials have expired"

Are there any related issues?

In the hundreds of tickets on the original Nylas repository, probably.

What operating system are you using?

macOS Sierra 10.12.5

What version of Nylas Mail are you using?

2.0.32

--

Bug?

Do you have any third-party plugins installed? If so, which ones?

Nope

Is the issue related to a specific email provider (Gmail, Exchange, etc.)?

I'm exclusively using my 2 Gmail accounts with Nylas, so this could be a Gmail-specific issue.

Is the issue reproducible with a particular attachment, message, signature, etc?

I can't seem to reproduce this error consistently. It seems to happen approximately once every few days, at random. I can fix it by quitting and then reopening Nylas. Screen shot of error message:

screen shot 2017-06-02 at 8 48 12 am

Error log:

SendTaskRunner.runTask: stored credentials have expiredError: SendTaskRunner.runTask: stored credentials have expired
at SendTaskRunner. (/internal_packages/client-sync/src/local-sync-worker/send-task-runner.es6:17:13)
at next ()
at step (/internal_packages/client-sync/src/local-sync-worker/send-task-runner.es6:3:1)
at Promise._execute (/Applications/Nylas Mail.app/Contents/Resources/app.asar/node_modules/bluebird/js/release/debuggability.js:300:9)
at Promise._resolveFromExecutor (/Applications/Nylas Mail.app/Contents/Resources/app.asar/node_modules/bluebird/js/release/promise.js:481:18)
at new Promise (/Applications/Nylas Mail.app/Contents/Resources/app.asar/node_modules/bluebird/js/release/promise.js:77:14)
at SendTaskRunner. (/internal_packages/client-sync/src/local-sync-worker/send-task-runner.es6:3:1)
at /internal_packages/client-sync/src/local-sync-worker/send-task-manager.es6:61:27
at next ()
at step (/internal_packages/client-sync/src/local-sync-worker/send-task-manager.es6:6:1)
at /internal_packages/client-sync/src/local-sync-worker/send-task-manager.es6:6:1
at tryCatcher (/Applications/Nylas Mail.app/Contents/Resources/app.asar/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/Applications/Nylas Mail.app/Contents/Resources/app.asar/node_modules/bluebird/js/release/promise.js:510:31)
at Promise._settlePromise (/Applications/Nylas Mail.app/Contents/Resources/app.asar/node_modules/bluebird/js/release/promise.js:567:18)
at Promise._settlePromiseCtx (/Applications/Nylas Mail.app/Contents/Resources/app.asar/node_modules/bluebird/js/release/promise.js:604:10)
at Async._drainQueue (/Applications/Nylas Mail.app/Contents/Resources/app.asar/node_modules/bluebird/js/release/async.js:138:12)
at Async._drainQueues (/Applications/Nylas Mail.app/Contents/Resources/app.asar/node_modules/bluebird/js/release/async.js:143:10)
at Async.drainQueues (/Applications/Nylas Mail.app/Contents/Resources/app.asar/node_modules/bluebird/js/release/async.js:17:14)

Unable to log in to Gmail or Outlook with avast

This feature was added in Nylas 2.0.18 to fix this issue but currently I don't see it in this fork's 2.1.:

  • Allow bypassing of invalid certificates during authentication

And because of the lack of it I get: Please contact [email protected]. An unforeseen error has occurred.

Are there any related issues?

No

What operating system are you using?

Windows 10

What version of Nylas Mail are you using?

2.1.0

--

Bug? Yes

Do you have any third-party plugins installed? If so, which ones?

None (also because of a bug)

Is the issue related to a specific email provider (Gmail, Exchange, etc.)?

Gmail and outlook

Is the issue reproducible with a particular attachment, message, signature, etc?

Just install avast free and enable mail filter

Email Forwarding loses all body text upon sending

Any message forwarded loses its body content upon hitting send. Only the forwarded email content is retained but not any new text that is typed.

The error occurs on the master.

The following log relates to this issue but I am not sure if it is informative at all.

[17362:0711/140120:INFO:CONSOLE(46)] "%c<[email protected]> %c🔃 ✉️ (Sent Items) "Fwd: test1" - Tue Jul 11 2017 14:01:13 GMT-0700 (PDT)", source: /home/***/Desktop/NotBacked/nylas-mail/packages/client-sync/src/shared/logger.es6 (46) [17362:0711/140121:INFO:CONSOLE(31)] "Got error while trying to parse body path, assuming we need to migrate", source: /home/***/Desktop/NotBacked/nylas-mail/packages/isomorphic-core/src/message-body-utils.es6 (31) [17362:0711/140121:INFO:CONSOLE(31)] "Got error while trying to parse body path, assuming we need to migrate", source: /home/***/Desktop/NotBacked/nylas-mail/packages/isomorphic-core/src/message-body-utils.es6 (31) [17362:0711/140121:INFO:CONSOLE(46)] "%c<[email protected]> %c🔚 📂 🆕 Sent Items done", source: /home/***/Desktop/NotBacked/nylas-mail/packages/client-sync/src/shared/logger.es6 (46)

No sound when notify

Are there any related issues?

...
nylas/nylas-mail#3477

What operating system are you using?

...
Windows 10 Pro 1703

What version of Nylas Mail are you using?

...
2.1.0

Bug?

Do you have any third-party plugins installed? If so, which ones?

...
No

Is the issue related to a specific email provider (Gmail, Exchange, etc.)?

...
Gmail and Company's mail server

Is the issue reproducible with a particular attachment, message, signature, etc?

...
There was no problem when using at least 2.0.32.
I tried reinstalling 2.1.0, but the situation did not change.

Feature Request?

Does this feature exist in another mail client or tool you use?

...

Reverse mail order option

Would anyone be interested in providing an option so that the correspondence in emails is instead reverse with newest appearing on top. Currently it is the other way around. What I am thinking is more like what you see in the outlook.com web interface.

Clarify build_client in Linux docs

The Linux docs are confusing in terms of the purpose of build_client we should mention that this is meant to package the app, and is not necessarily needed for development work.

See #44 for example of confusion.

Location of email database on Mac sierra

What is the issue

What is the Location of the nylas-mail email database (sqlite?) on Mac sierra?

Are there any related issues.

related issues to my knowledge.

What operating system are you using?

Osx sierra

What version of Nylas Mail are you using?

2 Dot Something

Does this feature exist in another mail client or tool you use.

Thus feature does not exist at least completely in any other email client though is partially available in Outlook through VBA scripting

Add Another Build Command Which Skips Packaging

We should have a build command that skips packaging for Linux/Mac since it's not necessary for development. Perhaps the current "build-client" command would serve this purpose and we make a new command that just does packaging "package-client" or something like that.

Mail Merge

Feature Request?
Could we have Mail Merge back please?

This feature was killed in the switch from N1 to Nylas Mail. It was awesome for productivity and would be fantastic to see it reinstated. Not clear on why it was ever killed
...

Can not display mail from Amazon (HTML-mail?)

Are there any related issues?

...
nylas/nylas-mail#3434

What operating system are you using?

...
Windows 10 Pro 1703 x64

What version of Nylas Mail are you using?

...
2.1.0

Bug?

Do you have any third-party plugins installed? If so, which ones?

...
No

Is the issue related to a specific email provider (Gmail, Exchange, etc.)?

...
It does not appear to be related to a specific mail provider.

Is the issue reproducible with a particular attachment, message, signature, etc?

...
All text from Amazon will not be displayed.
capture

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.