Web and API based SMTP testing
Find a file
Ian Kent 36a5728c5d Merge pull request #14 from derwassi/master
display of multipart messages
2014-12-12 14:47:01 +00:00
data Move config/message/http/storage packages 2014-11-23 14:01:36 +00:00
http Refactor web/api/smtp servers 2014-11-23 15:05:11 +00:00
images Update screenshot 2014-04-27 20:27:13 +01:00
MailHog Move some packages 2014-12-07 18:57:05 +00:00
MailHog-Server Move some packages 2014-12-07 18:57:05 +00:00
MailHog-UI correct display of text/plain and text/html multipart messages with quoted-printable transfer type 2014-12-12 15:22:56 +01:00
smtp/protocol Move some packages 2014-12-07 18:57:05 +00:00
storage Move config/message/http/storage packages 2014-11-23 14:01:36 +00:00
.travis.yml Update .travis.yml and README (doesn't compile on Go 1.1) 2014-12-02 22:09:35 +00:00
APIv1.md Update APIv1 docs 2014-04-28 01:58:45 +01:00
Dockerfile Fix Dockerfile 2014-11-23 15:56:18 +00:00
LICENSE.md Change release output path, add missing LICENSE file 2014-10-29 18:55:17 +00:00
Makefile Hopefully fix travis issue 2014-12-02 21:48:36 +00:00
README.md Add build status badge 2014-12-02 22:28:08 +00:00
RELEASES.md Update releases and readme 2014-12-02 19:53:02 +00:00

Go-MailHog Download GoDoc Build Status

Inspired by MailCatcher, easier to install.

Go-MailHog is a rewritten version of MailHog, which was born out of M3MTA.

Go was chosen for portability - MailHog runs without installation on multiple platforms.

Requirements

  • None!

Getting started

Either:

By default, the SMTP server will start on port 1025, the HTTP server will start on port 8025, and in-memory message storage will be used.

Features

  • ESMTP server implementing RFC5321
  • Support for SMTP AUTH (RFC4954) and PIPELINING (RFC2920)
  • Web interface to view messages (plain text, HTML or source)
    • Supports RFC2047 encoded headers
  • Real-time updates using EventSource
  • Release messages to real SMTP servers
  • HTTP API to list, retrieve and delete messages
  • Multipart MIME support
  • Download individual MIME parts
  • In-memory message storage
  • MongoDB storage for message persistence
  • Lightweight and portable
  • No installation required

Screenshot of MailHog web interface

Configuration

You can configure Go-MailHog using command line options or environment variables:

Environment Command line Default Description
MH_HOSTNAME -hostname mailhog.example Hostname to use for EHLO/HELO and message IDs
MH_HTTP_BIND_ADDR -httpbindaddr 0.0.0.0:8025 Interface and port for HTTP server to bind to
MH_MONGO_COLLECTION -mongocoll messages MongoDB collection name for message storage
MH_MONGO_DB -mongodb mailhog MongoDB database name for message storage
MH_MONGO_URI -mongouri 127.0.0.1:27017 MongoDB host and port
MH_SMTP_BIND_ADDR -smtpbindaddr 0.0.0.0:1025 Interface and port for SMTP server to bind to
MH_STORAGE -storage memory Set message storage: memory / mongodb

Contributing

Clone this repository to $GOPATH/src/github.com/ian-kent/Go-MailHog and type make deps.

Requires Go 1.2+ to build.

Run tests using make test or goconvey.

If you make any changes, run go fmt ./... before submitting a pull request.

Licence

Copyright ©‎ 2014, Ian Kent (http://www.iankent.eu).

Released under MIT license, see LICENSE for details.