Nodemailer App

NodemailerApp is the ultimate cross platform email debugging app.

App includes local SMTP and POP3 servers, a sendmail replacement, catchall email domain service, AMP4Email renderer and it imports emails from EML files, EMLX files, large MBOX files from Gmail takeout, Maildir folders and Postfix queue files for inspection and preview. Ever wanted to view the actual HTML source of a nicely designed email instead of some garbled rfc822 text? Just open the HTML tab of an email to see it.

You can use NodemailerApp to instantly preview emails sent from your dev environment, be it from SMTP or sendmail or even from the open web via built-in catchall service. You can also upload any email to an external SMTP or IMAP server. All SMTP, POP3 and IMAP transactions include live logs for extra clarity.


NB! Downloads are very slow as the network throughput for this server is limited and file sizes are quite large (>100MB as this is an Electron app).

NodemailerApp (OSX) NodemailerApp (Windows) Snapcraft (Linux)


1. Preview emails as these are being imported. You can start importing a large 10GB mbox file from Gmail Takout and immediatelly start browsing emails that are already imported.

2. Rich email output. In addition to normal rich text email views you can see the plain text alternative, HTML source code and email headers. You can download the entire email as an EML file, or export it as PDF. All related attachments can be found under the Files tab.

3. Local development server. You can configure your development environment to use NodemailerApp as SMTP relay server. Whenever sending out an email from your local Laravel or any other stack you can immediatelly preview the sent email in NodemailerApp. The sent email is catched by NodemailerApp for good so it is not delivered to actual recipients which makes it fantastic for testing environments. If you ever need to access the sent emails from your own app you can do so by using POP3.

4. Message upload. Stored emails can be uploaded to SMTP (which means the email is being actually delivered to destination) or to an IMAP server (so it would end up in your actual email account).

5. Extensive search. Search for emails or specific attachments or specific people. You can even search by every header value in every message as NodemailerApp indexes basically everything. Wanted to find that specific PDF file sent by your boss some time last year? NodemailerApp attachment search has you covered.

6. Catchall service. App includes built-in support for catchall email domain service. Just enable it with a click and you get a custom domain name. All emails sent to this domain are routed to a project in your app.

7. AMP4Email. Preview dynamic AMP4Email emails. If something is wrong with the message then NodemailerApp shows you the exact cause of the failure unlike email services that just plainly ignore dynamic content on errors. See this blog post for usage example.

Using with XAMPP


In Windows you can edit php.ini and set it to the value provided in the Local Server view in NodemailerApp as your web app and NodemailerApp run in the same environment. Great thing about such setup is that NodemailerApp does not have to be working while emails are being sent. Emails are stored to disk and can be viewed next time you start the app.

Alternatively you can download Windows version of sendmail as a separate application and place it wherever you like. Use the same arguments though as shown in the instructions section.


In OSX XAMPP runs your web app in an isolated container and thus making sendmail requests directly against NodemailerApp application is not possible. Instead you should use the Linux version of sendmail replacement to proxy emails over SMTP. This also means that you can only accept mail when NodemailerApp is actually opened and it has local server running.

1. First make sure that NodemailerApp local server listening IP is either or (default is as XAMPP VM on OSX sets up a virtual private network, where the host machine usually gets assigned the IP

2. Then download and unpack the Linux version of sendmail replacement and copy it to the XAMPP container.

3. For some reason Apache in XAMPP uses some old c++ libraries, you can force it to use newer one by running the following commands in XAMP terminal:

$ mv /opt/lampp/lib/ /opt/lampp/lib/
$ cp /usr/lib/x86_64-linux-gnu/ /opt/lampp/lib/

4. Then edit /opt/lampp/etc/php.ini, find the [mail function] section and add the following configuration line (assuming you copied sendmail binary to /opt/lampp) using SMTP username and password provided by NodemailerApp:

sendmail_path = "/opt/lampp/sendmail --host= --port=1025 --user=project.1 --pass=secret.1 -t -i"

For all available configuration options, run /opt/lampp/sendmail --help

5. Last, restart Apache service in XAMPP.


Use NodemailerApp as local test server for SMTP
Use NodemailerApp as local test server for Ghost Blog
Use NodemailerApp as sendmail replacement
Catch and preview emails from XAMPP OSX VM
Use built-in catchall service to receive emails from the web
Preview AMP4Emails