SMTP Server + Web Interface for viewing and testing emails during development.
2.1K
FORK of https://github.com/djfarrelly/MailDev
Additional features:

$ npm install -g maildev
$ maildev
If you want to use MailDev with Docker, you can use the psi-4ward/maildev image on Docker Hub. For a guide for usage with Docker, checkout the docs.
$ docker run -p 1080:80 -p 1025:25 psi-4ward/maildev
maildev [options]
-h, --help output usage information
-V, --version output the version number
-s, --smtp <port> SMTP port to catch emails [1025]
-w, --web <port> Port to run the Web GUI [1080]
--ip <ip address> IP Address to bind SMTP service to
--outgoing-host <host> SMTP host for outgoing emails
--outgoing-port <port> SMTP port for outgoing emails
--outgoing-user <user> SMTP user for outgoing emails
--outgoing-pass <password> SMTP password for outgoing emails
--outgoing-secure Use SMTP SSL for outgoing emails
--auto-relay [email] Use auto-relay mode. Optional relay email address
--auto-relay-rules <file> Filter rules for auto relay mode
--incoming-user <user> SMTP user for incoming emails
--incoming-pass <pass> SMTP password for incoming emails
--web-ip <ip address> IP Address to bind HTTP service to, defaults to --ip
--web-user <user> HTTP user for GUI
--web-pass <password> HTTP password for GUI
--base-pathname <path> base path for URLs
--disable-web Disable the use of the web interface. Useful for unit testing
--hide-extensions <extensions> Comma separated list of SMTP extensions to NOT advertise
(STARTTLS, SMTPUTF8, PIPELINING, 8BITMIME)
-o, --open Open the Web GUI after startup
-v, --verbose
--silent
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.
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>'
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 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...
})
Nodemailer (v0.7)
const transport = nodemailer.createTransport('SMTP', {
port: 1025,
// 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
}
Drupal -- Install and configure SMTP module or use a library like SwiftMailer.
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 or contact me on twitter.
MIT
Content type
Image
Digest
Size
26 MB
Last updated
over 8 years ago
docker pull psitrax/maildev