mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-01-11 18:47:51 +08:00
💌 A beautiful, fast and fully open source mail client for Mac, Windows and Linux.
8238fe9594
Summary: It's possible to have multiple inline HTML parts in a message, or even a multipart/alternative part that contains text and HTML, followed by a plaintext signature. Previously, if there was more than one text part in an email, we would pick the _last_ text/html or text/plain part that we found, and treat that as the entire message body. This works most of the time, but fails to display the full message body in some edge cases. This patch fixes that by resolving multipart/alternative subparts to a single part in the mimepart fetch stage, and then treating each desired mime part separately when parsing the message, concatenating them if there are multiple. This makes K2's handling of multipart MIME message text better, bug-wise, than the Python sync engine's, which has been mangling some rare messages forever. (Example from my email: every email from the MIT EECS Jobs List has never displayed the mailing list signature in N1.) Note that this patch also removes our tentative support for PGP encrypted messages. I'd rather add that back in later when I've dug up some real example messages to test on, rather than leaving it in in its current not-really-tested and probably not-really-working state, since it makes it harder to make sure that the rest of the logic isn't broken. Test Plan: manual for now - added examples of this to my growing list of regression tests to add to the message parser unit tests once I fix them Reviewers: juan, evan Reviewed By: evan Differential Revision: https://phab.nylas.com/D3600 |
||
---|---|---|
.ebextensions | ||
arclib | ||
packages | ||
scripts | ||
.arcconfig | ||
.arclint | ||
.babelrc | ||
.dockerignore | ||
.eslintrc | ||
.gitignore | ||
.tern-project | ||
Dockerfile | ||
lerna.json | ||
package.json | ||
pm2-dev.yml | ||
pm2-prod-api.yml | ||
pm2-prod-workers.yml | ||
README.md | ||
test_accounts.txt |
K2 - Local Sync Engine & Cloud Services for Nylas N1
This is a collection of all sync and cloud components required to run N1.
- Cloud API: The cloud-based auth and metadata APIs for N1
- Cloud Core: Shared code used in all remote cloud services
- Cloud Workers: Cloud workers for services like send later
- Isomorphic Core: Shared code across local client and cloud servers
- Local Sync: The local mailsync engine integreated in Nylas N1
See /packages
for the separate pieces. Each folder in /packages
is
designed to be its own stand-alone repositoriy. They are all bundled here
for the ease of source control management.
Initial Setup for All Local & Cloud Services:
New Computer (Mac):
- Install Homebrew
- Install NVM
brew install nvm
- Install Node 6 via NVM:
nvm install 6
- Install Redis locally
brew install redis
New Computer (Linux - Debian/Ubuntu):
- Install Node 6+ via NodeSource (trusted):
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
- Install Redis locally
sudo apt-get install -y redis-server redis-tools
benefit of letting us use subdomains.