Convert Figma logo to code with AI

Foundry376 logoMailspring

:love_letter: A beautiful, fast and fully open source mail client for Mac, Windows and Linux.

15,413
901
15,413
8

Top Related Projects

:love_letter: An extensible desktop mail app built on the modern web. Forks welcome!

A third-party, open-source ProtonMail CardDAV, IMAP and SMTP bridge

The Roundcube Webmail suite

Tuta is an email service with a strong focus on security and privacy that lets you encrypt emails, contacts and calendar entries on all your devices.

Quick Overview

Mailspring is an open-source, extensible email client for Mac, Windows, and Linux. It's built with Electron and offers a modern, customizable interface with advanced features like unified inbox, snoozing, and send later functionality.

Pros

  • Cross-platform compatibility (Mac, Windows, Linux)
  • Extensive features including unified inbox, snoozing, and send later
  • Customizable interface with themes and layouts
  • Open-source and extensible

Cons

  • Requires a Mailspring ID for some advanced features
  • Can be resource-intensive on older hardware
  • Limited support for non-standard email protocols
  • Some users report syncing issues with certain email providers

Getting Started

To get started with Mailspring:

  1. Visit the Mailspring website or the GitHub releases page.
  2. Download the appropriate installer for your operating system.
  3. Run the installer and follow the on-screen instructions.
  4. Launch Mailspring and set up your email account(s).
  5. Customize the interface and explore features through the settings menu.

For developers interested in contributing or extending Mailspring:

  1. Clone the repository:
    git clone https://github.com/Foundry376/Mailspring.git
    
  2. Install dependencies:
    cd Mailspring
    npm install
    
  3. Build and run the application:
    npm start
    

Refer to the developer documentation for more detailed information on contributing to the project.

Competitor Comparisons

:love_letter: An extensible desktop mail app built on the modern web. Forks welcome!

Pros of Nylas Mail

  • Open-source and community-driven development
  • Extensible plugin architecture
  • Cross-platform compatibility (Windows, macOS, Linux)

Cons of Nylas Mail

  • Discontinued and no longer actively maintained
  • Potential security concerns due to lack of updates
  • Limited modern features compared to actively developed alternatives

Code Comparison

Nylas Mail (JavaScript):

import {React} from 'nylas-exports';
import {RetinaImg} from 'nylas-component-kit';

class MyComponent extends React.Component {
  render() {
    return <RetinaImg name="my-icon.png" mode={RetinaImg.Mode.ContentPreserve} />;
  }
}

Mailspring (TypeScript):

import React from 'react';
import {RetinaImg} from 'mailspring-component-kit';

const MyComponent: React.FC = () => {
  return <RetinaImg name="my-icon.png" mode={RetinaImg.Mode.ContentPreserve} />;
};

While both projects use similar component structures, Mailspring has transitioned to TypeScript for improved type safety and developer experience. Mailspring also benefits from active development, regular updates, and a more modern codebase compared to the discontinued Nylas Mail project.

A third-party, open-source ProtonMail CardDAV, IMAP and SMTP bridge

Pros of hydroxide

  • Lightweight and focused on ProtonMail bridge functionality
  • Command-line interface offers flexibility for advanced users
  • Open-source nature allows for community contributions and auditing

Cons of hydroxide

  • Limited to ProtonMail, while Mailspring supports multiple email providers
  • Lacks a graphical user interface, which may be less user-friendly for some
  • Fewer features compared to Mailspring's comprehensive email client capabilities

Code Comparison

Hydroxide (Go):

func (b *Bridge) Login(username, password string) error {
    auth, err := protonmail.NewAuth(b.client, username, password)
    if err != nil {
        return err
    }
    // ... (additional login logic)
}

Mailspring (TypeScript):

async loginToAccount(account: Account): Promise<void> {
  const credentials = account.credentials();
  const imap = new IMAPConnection(account);
  await imap.connect(credentials);
  // ... (additional login and sync logic)
}

The code snippets show different approaches to handling email account login. Hydroxide focuses on ProtonMail-specific authentication, while Mailspring uses a more generic IMAP connection method, reflecting their different scopes and purposes.

The Roundcube Webmail suite

Pros of Roundcubemail

  • Open-source and self-hosted, providing greater control over data and privacy
  • Lightweight and compatible with various server configurations
  • Extensive plugin ecosystem for customization and feature expansion

Cons of Roundcubemail

  • Less modern and intuitive user interface compared to Mailspring
  • Limited native desktop integration and offline functionality
  • Fewer built-in productivity features like snoozing and send later

Code Comparison

Roundcubemail (PHP):

$rcmail = rcmail::get_instance();
$rcmail->output->set_env('mailbox', $mailbox);
$rcmail->output->send('mail');

Mailspring (JavaScript):

const mailbox = MailboxStore.getMailbox();
Actions.selectMailbox(mailbox);
AppEnv.displayWindow();

Both projects use different programming languages and architectures. Roundcubemail is primarily server-side PHP, while Mailspring is built with Electron and uses JavaScript for its client-side application. Roundcubemail's code focuses on server-side rendering and interaction, whereas Mailspring's code emphasizes client-side functionality and desktop integration.

Tuta is an email service with a strong focus on security and privacy that lets you encrypt emails, contacts and calendar entries on all your devices.

Pros of Tutanota

  • Strong focus on end-to-end encryption and privacy
  • Open-source and self-hostable
  • Lightweight and fast web-based client

Cons of Tutanota

  • Limited third-party integrations compared to Mailspring
  • Less customizable user interface
  • Fewer advanced email management features

Code Comparison

Tutanota (TypeScript):

export function createMailAddress(address: string): MailAddress {
  return {
    address,
    name: "",
    contact: null,
    type: MailAddressType.EXTERNAL
  }
}

Mailspring (JavaScript):

export function parseNameAndEmailAddress(text) {
  const parsed = addressparser(text);
  if (!parsed || parsed.length === 0) {
    return null;
  }
  return parsed[0];
}

Both repositories use modern JavaScript/TypeScript for their email-related functions. Tutanota's code focuses on creating mail address objects with privacy-centric properties, while Mailspring's code emphasizes parsing and extracting email address information from text.

Tutanota prioritizes security and privacy in its implementation, whereas Mailspring offers more extensive email management features and a highly customizable interface. The choice between the two depends on whether the user prioritizes privacy and encryption or advanced email functionality and customization.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

💌 Mailspring

Travis Status AppVeyor Status

Mailspring is a new version of Nylas Mail maintained by one of the original authors. It's faster, leaner, and shipping today! It replaces the JavaScript sync code in Nylas Mail with a new C++ sync engine based on Mailcore2. It uses roughly half the RAM and CPU of Nylas Mail and idles with almost zero "CPU Wakes", which translates to great battery life. It also has an entirely revamped composer and other great new features.

Mailspring's UI is open source (GPLv3) and written in TypeScript with Electron and React - it's built on a plugin architecture and was designed to be easy to extend. Check out CONTRIBUTING.md to get started!

Mailspring's sync engine is spawned by the Electron application and runs locally on your computer. It is open source (GPLv3) and written in C++ and C. For convenience, however, when you set up your development environment, Mailspring uses the latest version of the sync engine we've shipped for your platform so you don't need to pull sources or install its compile-time dependencies.

Mailspring Screenshot

Features

Mailspring comes packed with powerful features like Unified Inbox, Snooze, Send Later, Mail Rules, Templates and more. Mailspring Pro, which you can unlock with a monthly subscription, adds even more features for people who send a ton of email: link tracking, read receipts, mailbox analytics, contact and company profiles. All of these features run in the client - Mailspring does not send your email credentials to the cloud. For a full list of features, check out getmailspring.com.

Download Mailspring

You can download compiled versions of Mailspring for Windows, Mac OS X, and Linux (deb, rpm and snap) from https://getmailspring.com/download.

Getting Help

You can find community-based help and discussion with other Mailspring users on our Discourse community.

Contributing

Mailspring is entirely open-source. Pull requests and contributions are welcome! There are three ways to contribute: building a plugin, building a theme, and submitting pull requests to the project itself. When you're getting started, you may want to join our Discourse so you can ask questions and learn from other people doing development.

Contributor Covenant

Running Mailspring from Source

To install all dependencies and run Mailspring from its source code, run the following commands from the root directory of the Mailspring repository:

export npm_config_arch=x64 # If you are on an M1 / Apple Silicon Mac
npm install
npm start

You can attach command line parameters by separating them using a double hyphen:

npm start -- --help

Building Mailspring

To build Mailspring, you need to run the following command from the root directory of the Mailspring repository:

npm run-script build

Building A Plugin

Plugins lie at the heart of Mailspring and give it its powerful features. Building your own plugins allows you to integrate the app with other tools, experiment with new workflows, and more. Follow the Getting Started guide to write your first plugin in five minutes.

A plugin "store" like the Chrome Web Store is coming soon, and will make it easy for other users to discover plugins you create. (Right now, users need to "sideload" the plugins into the app by downloading them and copying them into place.)

You can share and browse Mailspring Plugins, and discuss plugin development with other developers, on our Discourse.

Building a Theme

The Mailspring user interface is styled using CSS, which means it's easy to modify and extend. Mailspring comes stock with a few beautiful themes, and there are many more which have been built by community developers. To start creating a theme, clone the theme starter!

If you are updating an existing Nylas theme for Mailspring here is a step by step tutorial. Notice: as part of the update process you will probably need to import mailspring base variables.

You can share and browse Mailspring Themes, and discuss theme development with other developers, on our Discourse.

Localizing / Translating

Mailspring (1.5.0 and above) supports localization. If you're a fluent speaker of another language, we'd love your help improving translations. Check out the LOCALIZATION guide for more information. You can discuss localization and translation with other developers on our Discourse.

Contributing to Mailspring Core

Pull requests are always welcome - check out CONTRIBUTING for more information about setting up the development environment, running tests locally, and submitting pull requests.