assets | ||
images | ||
mailhog | ||
APIv1.md | ||
auth_test.go | ||
bindata.go | ||
main.go | ||
main_test.go | ||
mime_test.go | ||
README.md |
Go-MailHog
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
- Download the latest release of Go-MailHog for your platform
- Start MailHog
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)
- Real-time updates using EventSource
- Release messages to real SMTP servers
- HTTP API to list, retrieve and delete messages
- See APIv1 documentation for more information
- Multipart MIME support
- Download individual MIME parts
- In-memory message storage
- MongoDB storage for message persistence
- Lightweight and portable
- No installation required
Configuration
You can configure Go-MailHog using command line options:
Parameter | Default | Description |
---|---|---|
-hostname | mailhog.example | Hostname to use for EHLO/HELO and message IDs |
-httpbindaddr | 0.0.0.0:8025 | Interface and port for HTTP server to bind to |
-mongocoll | messages | MongoDB collection name for message storage |
-mongodb | mailhog | MongoDB database name for message storage |
-mongouri | 127.0.0.1:27017 | MongoDB host and port |
-smtpbindaddr | 0.0.0.0:1025 | Interface and port for SMTP server to bind to |
-storage | memory | Set message storage: memory / mongodb |
Contributing
Clone this repository to $GOPATH/src/github.com/ian-kent/MailHog
and type go install
.
You'll need go-bindata to embed web assets:
go get https://github.com/jteeuwen/go-bindata/...
go-bindata assets/...
Run tests using go test
. You'll need a copy of MailHog running for tests to pass.
(Tests currently fail using in-memory storage, use MongoDB!)
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.