All Projects â†’ maildev â†’ Maildev

maildev / Maildev

Licence: other
📫 SMTP Server + Web Interface for viewing and testing emails during development.

Programming Languages

javascript
184084 projects - #8 most used programming language
SCSS
7915 projects
HTML
75241 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to Maildev

mailgrab
Simple and easy to use catch-all SMTP mail server and debugging tool
Stars: ✭ 92 (-97.03%)
Mutual labels:  smtp, smtp-server, mailcatcher
Sendria
Sendria (formerly MailTrap) is a SMTP server designed to run in your dev/test environment, that is designed to catch any email you or your application is sending, and display it in a web interface instead of sending to real world.
Stars: ✭ 30 (-99.03%)
Mutual labels:  smtp, smtp-server, developer-tools
Papercut Smtp
Papercut SMTP -- The Simple Desktop Email Server
Stars: ✭ 2,094 (-32.5%)
Mutual labels:  smtp, smtp-server, development
android-trinity
android-trinity is tiny proactive framework with much of the scaffolding code required to start a new Android Application.
Stars: ✭ 44 (-98.58%)
Mutual labels:  development, developer-tools
smtpd
SMTP server (library) for receiving emails, written in pure PHP.
Stars: ✭ 94 (-96.97%)
Mutual labels:  smtp, smtp-server
jolimail
Send nice emails
Stars: ✭ 78 (-97.49%)
Mutual labels:  smtp, smtp-server
aws-lambda-node-mailer
NodeJs code for Firing Email via AWS-Lambda and SES
Stars: ✭ 24 (-99.23%)
Mutual labels:  smtp, nodemailer
yggmail
End-to-end encrypted email for the mesh networking age
Stars: ✭ 72 (-97.68%)
Mutual labels:  smtp, smtp-server
dotfiles
My personal app/env configs and dotfiles.
Stars: ✭ 27 (-99.13%)
Mutual labels:  development, developer-tools
init-macOS-dev
init my macOS development environment
Stars: ✭ 14 (-99.55%)
Mutual labels:  development, developer-tools
mailtrap
MailTrap has been renamed to Sendria. Please use Sendria now, MailTrap is abandoned. MailTrap is a SMTP server designed to run in your dev/test environment, that is designed to catch any email you or your application is sending, and display it in a web interface instead of sending to real world.
Stars: ✭ 14 (-99.55%)
Mutual labels:  developer-tools, mailcatcher
OrigamiSMTP
A TLS Enabled Fake SMTP Server for Development
Stars: ✭ 16 (-99.48%)
Mutual labels:  development, smtp-server
blackhole
Blackhole is an MTA written on top of asyncio, utilising async and await statements that dumps all mail it receives to /dev/null.
Stars: ✭ 61 (-98.03%)
Mutual labels:  smtp, smtp-server
SimpleKotlinMail
A simple, coroutine based Kotlin Email API for both client- and server-side projects
Stars: ✭ 56 (-98.19%)
Mutual labels:  smtp, smtp-server
smtp-dkim-signer
SMTP-proxy that DKIM-signs e-mails before submission to an upstream SMTP-server.
Stars: ✭ 28 (-99.1%)
Mutual labels:  smtp, smtp-server
haraka-plugin-mongodb
Plugin for the Haraka SMTP server to store incoming and outgoing emails to MongoDB
Stars: ✭ 25 (-99.19%)
Mutual labels:  smtp, smtp-server
nestjs-mailer
🌈 A simple implementation example with and without email-templates using mailer module for nest js built on top of nodemailer.
Stars: ✭ 82 (-97.36%)
Mutual labels:  smtp, nodemailer
hapi-dev-errors
A hapi plugin to return better error details and skip the look at command line to catch the issue.
Stars: ✭ 58 (-98.13%)
Mutual labels:  development, developer-tools
ControlCenter
Mirrored from GitLab! Monitoring and automation for Open Source email servers, starting with Postfix. Please do not submit issues or PRs here - join us at: https://gitlab.com/lightmeter
Stars: ✭ 88 (-97.16%)
Mutual labels:  smtp, smtp-server
MailDemon
Smtp server for mass emailing, managing email lists and more. Built on .NET Core. Linux, MAC and Windows compatible.
Stars: ✭ 113 (-96.36%)
Mutual labels:  smtp, smtp-server

MailDev

Test codecov NPM Version JavaScript Style Guide

MailDev is a simple way to test your project's generated emails during development with an easy to use web interface that runs on your machine. Built on top of Node.js.

MailDev Screenshot

Install & Run

$ npm install -g maildev
$ maildev

If you want to use MailDev with Docker, you can use the maildev/maildev image on Docker Hub. For a guide for usage with Docker, checkout the docs.

$ docker run -p 1080:1080 -p 1025:1025 maildev/maildev

For convenient use with Grunt, try grunt-maildev.

Usage

Usage: maildev [options]
Options Environment variable Description
-s, --smtp <port> MAILDEV_SMTP_PORT SMTP port to catch emails
-w, --web <port> MAILDEV_WEB_PORT Port to run the Web GUI
--mail-directory <path> MAILDEV_MAIL_DIRECTORY Directory for persisting mails
--https MAILDEV_HTTPS Switch from http to https protocol
--https-key <file> MAILDEV_HTTPS_KEY The file path to the ssl private key
--https-cert <file> MAILDEV_HTTPS_CERT The file path to the ssl cert file
--ip <ip address> MAILDEV_IP IP Address to bind SMTP service to
--outgoing-host <host> MAILDEV_OUTGOING_HOST SMTP host for outgoing emails
--outgoing-port <port> MAILDEV_OUTGOING_PORT SMTP port for outgoing emails
--outgoing-user <user> MAILDEV_OUTGOING_USER SMTP user for outgoing emails
--outgoing-pass <password> MAILDEV_OUTGOING_PASS SMTP password for outgoing emails
--outgoing-secure MAILDEV_OUTGOING_SECURE Use SMTP SSL for outgoing emails
--auto-relay [email] MAILDEV_AUTO_RELAY Use auto-relay mode. Optional relay email address
--auto-relay-rules <file> MAILDEV_AUTO_RELAY_RULES Filter rules for auto relay mode
--incoming-user <user> MAILDEV_INCOMING_USER SMTP user for incoming emails
--incoming-pass <pass> MAILDEV_INCOMING_PASS SMTP password for incoming emails
--web-ip <ip address> MAILDEV_WEB_IP IP Address to bind HTTP service to, defaults to --ip
--web-user <user> MAILDEV_WEB_USER HTTP user for GUI
--web-pass <password> MAILDEV_WEB_PASS HTTP password for GUI
--base-pathname <path> MAILDEV_BASE_PATHNAME Base path for URLs
--disable-web MAILDEV_DISABLE_WEB Disable the use of the web interface. Useful for unit testing
--hide-extensions <extensions> MAILDEV_HIDE_EXTENSIONS Comma separated list of SMTP extensions to NOT advertise (SMTPUTF8, PIPELINING, 8BITMIME)
-o, --open Open the Web GUI after startup
-v, --verbose
--silent

API

MailDev can be used in your Node.js application. For more info view the API docs.

const MailDev = require("maildev");

const maildev = new MailDev();

maildev.listen();

maildev.on("new", function (email) {
  // We got a new email!
});

MailDev also has a REST API. For more info view the docs.

Outgoing email

Maildev optionally supports selectively relaying email to an outgoing SMTP server. If you configure outgoing email with the --outgoing-* options you can click "Relay" on an individual email to relay through MailDev out to a real SMTP service that will *actually* send the email to the recipient.

Example:

$ maildev --outgoing-host smtp.gmail.com \
          --outgoing-secure \
          --outgoing-user '[email protected]' \
          --outgoing-pass '<pass>'

Auto relay mode

Enabling the auto relay mode will automatically send each email to it's recipient without the need to click the "Relay" button mentioned above. The outgoing email options are required to enable this feature.

Optionally you may pass an single email address which Maildev will forward all emails to instead of the original recipient. For example, using --auto-relay [email protected] will forward all emails to that address automatically.

Additionally, you can pass a valid json file with additional configuration for what email addresses you would like to allow or deny. The last matching rule in the array will be the rule MailDev will follow.

Example:

$ maildev --outgoing-host smtp.gmail.com \
          --outgoing-secure \
          --outgoing-user '[email protected]' \
          --outgoing-pass '<pass>' \
          --auto-relay \
          --auto-relay-rules file.json

Rules example file:

[
  { allow: "*" },
  { deny: "*@test.com" },
  { allow: "[email protected]" },
  { deny: "*@utah.com" },
  { allow: "[email protected]" },
];

This would allow [email protected], [email protected], [email protected], but deny [email protected].

Configure your project

Configure your application to send emails via port 1025 and open localhost:1080 in your browser.

Nodemailer (v1.0+)

const transport = nodemailer.createTransport({
  port: 1025,
  ignoreTLS: true,
  // other settings...
});

Django -- Add EMAIL_PORT = 1025 in your settings file [source]

Rails -- config settings:

config.action_mailer.delivery_method = :smtp
    config.action_mailer.smtp_settings = {
        address: "localhost",
        port: 1025,
        enable_starttls_auto: false
    }

Drupal -- Install and configure SMTP module or use a library like SwiftMailer.

Features

  • Toggle between HTML, plain text views as well as view email headers
  • Test responsive emails with resizable preview pane available for various screen sizes
  • Ability to receive and view email attachments
  • WebSocket integration keeps the interface in sync once emails are received
  • Command line interface for configuring SMTP and web interface ports
  • Ability to relay email to an upstream SMTP server

Ideas

If you're using MailDev and you have a great idea, I'd love to hear it. If you're not using MailDev because it lacks a feature, I'd love to hear that too. Add an issue to the repo here.

Contributing

Any help on MailDev would be awesome. There is plenty of room for improvement. Feel free to create a Pull Request from small to big changes.

To run MailDev during development:

npm install
npm run dev

The "dev" task will run MailDev using nodemon and restart automatically when changes are detected. On *.scss file save, the css will also be recompiled. Using test/send.js, a few test emails will be sent every time the application restarts.

The project uses the JavaScript Standard coding style. To lint your code before submitting your PR, run npm run lint.

To run the test suite:

$ npm test

Changelog

Thanks

MailDev is built on using great open source projects including Express, AngularJS, Font Awesome and two great projects from Andris Reinman: smtp-server and mailparser. Many thanks to Andris as his projects are the backbone of this app and to MailCatcher for the inspiration.

Additionally, thanks to all the awesome contributors to the project.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].