JavaScript Email

Open-source JavaScript projects categorized as Email | Edit details

Top 23 JavaScript Email Projects

  • GitHub repo N1

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

    Project mention: Fed up with the Mac, I spent six months with a Linux laptop | | 2021-04-02

    > - Finding a mail client I don't hate on linux is tricky. I've never been able to get on with the console clients, and I actually quite like Mac Mail. Thunderbird is kinda okay.

    If you're not a mailing list based developer, I would recommend Nylas Mail, which is both snappy any polished.

  • GitHub repo Nodemailer

    ✉️ Send e-mails with Node.JS – easy as cake!

    Project mention: New Year Resolution Tracker with Weekly Automated Reports | | 2022-01-13

    Nodemailer & Easycron for daily and weekly emails

  • OPS

    OPS - Build and Run Open Source Unikernels. Quickly and easily build and deploy open source unikernels in tens of seconds. Deploy in any language to any cloud.

  • GitHub repo MJML

    MJML: the only framework that makes responsive-email easy

    Project mention: Problem with html email signature for a client : I did an HTML email signature for a client with photoshop and I think it is not responsive, the mobile display can sometimes move some part of the signature and I get the same for mine too (second photo). Does someone know how to fix this ? | | 2022-01-12

    Another tool you could look at is MJML. It is designed for making responsive email templates but I’m sure you could also utilize it to make a signature as well.

  • GitHub repo community-edition

    Free and Open Source messaging and emailing app that combines common web applications into one.

    Project mention: Documentation for Custom code | | 2021-10-20

    The only thing i can find is this very very short example

  • GitHub repo Mailtrain

    Self hosted newsletter app

    Project mention: What does your tech stack look like for onboarding & user data? | | 2021-10-28

    Mailtrain documentation is lacking big time

  • GitHub repo Haraka

    A fast, highly extensible, and event driven SMTP server

    Project mention: Is a 'dumb' self-hosted email server possible. | | 2021-10-26

    Haraka ( is a plugin-based mailserver written in JavaScript. I've messed with postfix before but found Haraka easier because instead of arcane configuration files I can just read, copy, and tweak a plugin to suit my needs. Policies for receiving, storing, forwarding, and ignoring mail can be arbitrarily complex.

  • GitHub repo email-templates

    :mailbox: Create, preview, and send custom email templates for Node.js. Highly configurable and supports automatic inline CSS, stylesheets, embedded images and fonts, and much more!

    Project mention: Nodemailer has zero dependencies | | 2022-01-11

    I'd recommend the email-templates library to use with Nodemailer. You can bring your own template language (Pug/EJS/Markdown/whatever) and Email-Templates takes care of the inlining and other annoying boilerplate that needs to happen for email formatting.

  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

  • GitHub repo react-email-editor

    Drag-n-Drop Email Editor Component for React.js

    Project mention: 10+ React Rich Text Editors | | 2021-11-07

    Demo GitHub

  • GitHub repo juice

    Juice inlines CSS stylesheets into your HTML source. (by Automattic)

    Project mention: In-lining Styles Client Side | | 2021-11-11

    And it in-lines tagged HTML wonderfully. Works well.

    Still, it's overkill, brings with it dependencies cheerio, mensch and slick and a look into the code behind the on-line demo makes rapidly clear that Juice is parsing the style sheets and applying them in what looks to be, must be, a product of its age. It has over 1500 lines of Javascript and the repo was created in 2011 - the state of Javascript was woeful then compared with today (though not as woeful as in 2001 😏).

    So we have to give Juice full credit and admiration for its age and endurance, and that it's still being maintained and is useful. But I'll respectfully pass it by as I'm looking for a minimalist, native Javascript solution as far as possible, using the state of Javascript in 2021 a whole decade later (which in IT terms is an eon).

    inline-css 👎

    Immediately disconcerting is the npm documentation for this package. It says simply "Inspired by juice" and fails to tell us why the authors felt that embarking on a new project was worth their while. It hints at the fact that it's better than Juice in some way or other (why else start a new project inspired by it?), but lays no claim as to if or how that might be the case. A dark horse.

    The github repo dates to 2015 and so, it's not as long-in-the-tooth as Juice, but still, it likely leans on a more meager JavaScript standard than we have available today and quite possibly, like Juice resorts to parsing CSS code and interpreting it. It has about 1700 lines of Javascript and so is even larger than Juice! The last code contributions on github are early 2020 so at least it's being maintained which is good.

    Still, it also depends on cheerio, and so falls a little short of a native solution but worse, it does not provide us with any suggestion as to run-context (server side or client side).

    It's on npm, which is Node.js which suggests server-side JavaScript. It doesn't rule out that it works client-side, but there is zero indication provided that it does nor a test site, the way Juice provided. And like it or not, I associate npm primarily with Node.js and server side applications (rightly or wrongly).

    So for my needs, it goes respectfully into the too-hard basket. Failed, in a sense, by the poor quality of its own introductory presentation. An irony, because there is some nice documentation there, just not a nice introduction that spells out whether it runs client-side or not, how to if so, and how it's different from Juice and why we'd use it. All the obvious questions I have surfing in on it.

    css-inliner 👎

    Long story short, the introductory documentation fails this package even more than that for inline-css did. Again, it's on npm, and so looks targeted at server-side use and makes no effort to mention the other two (Juice or inline-css), or differentiate itself from them. The github repo dates back to 2015 as well and so it looks at some level to be an example of modern parallel development, this and inline-css emerging at the same time. And unsurprisingly, it again has around 1600 lines of JavaScript. The last code contribution was 2020 so again, at least it's being maintained which is good I guess.

    Still, no hint as to the run-context it supports (server-side and/or client-side) but hints, via its npm references and templating languages that it's a server-side tool not a client-side tool. Which doesn't rule out client-side application but again no claim that it works in that context, and no tips on how (if it does) and no demo site, so it's a respectful pass. Still seeking a lean native Javascript solution in preference to some pet project lacking clarity and exhibiting bloat.

    Native Javascript 👍

    The failure to find an existing solution, leads me to (seeking) a native JavaScript implementation and the journey of discovery that lies behind that.

    document.styleSheets provides us with a collection of CSSStyleSheets and CSSStyleSheet.rules in turn provides all of the CSSStyleRules in use and Element.matches() tells us if CSSStyleRule.selectorText applies to a given element.

    window.getComputedStyle() provides rapid access to the complete set of computed styles. That is, crucially it has taken all those styles that position things relative to the browser window and calculated where, in real coordinates it landed. Among other things. Crucially, it also has resolved all of CSS variables. It describes what an element actually looks like on the screen, rather than in the abstract CSS.

    We can use the style sheets and the computed styles to update the style attribute of each element and then, when all is done the innerText and the innerHTML or outerHTML are available for the the text/plain and text/html MIME parts respectively.

    Given we're in-lining styles, and we don't want to actually change the element in the DOM (we're just aiming to copy it to the clipboard in one form or another), we have to take a copy of the DOM element and in-line the styles on that. We have to use the computed style from the source element however as it is rendered on screen and the copy is not (hence has not got computed styles). To wit, we will have a source and target element one that is in the DOM and provides computed styles, and one that is not in the DOM and receives in-lined style attributes.

    Importantly an implementation like this is maybe 200, or 300 lines of JavaScript and not 1500.

    That more or less covers us and we have a terse native JavaScript in-lining solution!

    But ... performance, performance ... turns out that it's not slow, but it's not fast either, let's take a look at performance next, before we dive into an actual code implementation of the above schema - next week's article.

  • GitHub repo sendgrid-nodejs

    The Official Twilio SendGrid Led, Community Driven Node.js API Library

    Project mention: What's the simplest way to do Mobile number auth in Expo | | 2022-01-03
  • GitHub repo Papercut

    Papercut SMTP -- The Simple Desktop Email Server

    Project mention: Is there a private mailinator? | | 2021-01-27
  • GitHub repo free-email-forwarding

    The best free email forwarding for custom domains. Visit our website to get started (SMTP server)

    Project mention: Looking for a Gmail alternative with the "send as" feature | | 2021-12-26

    Currently I'm using and

  • GitHub repo emailjs

    html emails and attachments to any smtp server with nodejs

    Project mention: Transactional Email Provider | | 2021-10-20

    emailjs I was actually thinking about the library, but yes the rest are mailing services, that being said, would you use both? (as other answers seems to show, they will use NodeMailer + provider)

  • GitHub repo wildduck

    Opinionated email server

    Project mention: Which MTA would you choose on your high-capacity, Self Hosted mail server and Why? | | 2022-01-06


  • GitHub repo aws-lambda-ses-forwarder

    Serverless email forwarding using AWS Lambda and SES

    Project mention: Intuit to Acquire Mailchimp for $12b | | 2021-09-13

    When using SES, you cannot set FROM header to anything. The FROM has to be either an whitelisted email address or a domain that you own and verified with SES.

    When forwarding email, we are receiving email from unknow domains. If we rewrite the FROM headers then the DKIM will invalid, so service will have to rewrite the FROM and clear out DKIM.

    This is a well-known SES issue and project has to work around


  • GitHub repo node-html-to-text

    Advanced html to text converter

    Project mention: [TECH] Hugo で React + TypeScript を利用してサクッとウェブサイトに RSS リーダーを追加する ⛳ | | 2021-03-20

    html-to-text/node-html-to-text: Advanced html to text converter

  • GitHub repo linkifyjs

    Linkify is a JavaScript plugin for finding links in plain-text and converting them to HTML <a> tags.

    Project mention: Highlight words that start with "@" | | 2021-10-28

    Check out and

  • GitHub repo mjml-react

    React component library to generate the HTML emails on the fly

    Project mention: Can I use React to create an email on a node/express backend? | | 2021-11-01

    For email, mjml is the way to go in my opinion. There is this package that lets you use it with react, I've used it on several projects and it worked very well

  • GitHub repo thunderbird-conversations

    An extension for Thunderbird that allows you to view threads as "real" conversations, including your own emails. This extension also adds a bunch of useful UI features in the conversation view.

    Project mention: V91 Drag and Drop PDF Attachments FROM an email not working | | 2021-11-02
  • GitHub repo grouparoo

    🦘 The Grouparoo Monorepo - open source customer data sync framework

    Project mention: Invite your company | | 2021-12-10
  • GitHub repo sieve

    Sieve Script Editor (by thsmi)

    Project mention: Helm Personal Server Review | | 2021-11-28
  • GitHub repo

    The best free email forwarding for custom domains (Web Server)

    Project mention: Thoughts on using Webpack+Babel with Node/Express? | | 2022-01-09

    You can literally fix this right now with plain ole nodejs. - it’s not very well documented. It’s called sub path imports. See a great working example in this repo! (Also use forward email!!) - - it works in commonjs and esmodules.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2022-01-13.

JavaScript Email related posts


What are some of the best open-source Email projects in JavaScript? This list will help you:

Project Stars
1 N1 24,648
2 Nodemailer 14,420
3 MJML 12,946
4 community-edition 6,197
5 Mailtrain 4,945
6 Haraka 4,083
7 email-templates 3,305
8 react-email-editor 3,161
9 juice 2,704
10 sendgrid-nodejs 2,558
11 Papercut 2,114
12 free-email-forwarding 2,050
13 emailjs 1,968
14 wildduck 1,448
15 aws-lambda-ses-forwarder 1,414
16 node-html-to-text 1,139
17 linkifyjs 1,138
18 mjml-react 685
19 thunderbird-conversations 542
20 grouparoo 532
21 sieve 526
22 353
23 react-native-email-link 218
Find remote jobs at our new job board There are 28 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.
Deliver Cleaner and Safer Code - Right in Your IDE of Choice!
SonarLint is a free and open source IDE extension that identifies and catches bugs and vulnerabilities as you code, directly in the IDE. Install from your favorite IDE marketplace today.