Mailpopbox is a single-user mail server with SMTP and POP facilities. Its purpose is to provide privacy through anonymity by acting as a catch-all, wildcard email server for an entire domain name. Any message addressed to an account at the configured domain will be deposited into a single mailbox, which can then be accessed using the POP3 protocol.
The usage scenario is to configure your primary email provider (e.g.,
Gmail) or client to POP messages off the
server. Any time you need to provide an email address, you can give out
arbitrary-string@domain.com
, allowing you to use site/service/person-specific email addresses.
Mail is collected into a single maildrop that can be POP'd out into your normal mailbox.
Mailpopbox also provides a way to reply to messages from an arbitrary email address at the domain.
Since mailpopbox is designed as a catch-all mail server, it would be impractical to administer SMTP
accounts to enable replying from any address handled by the server. Instead, the SMTP authenticates
a single mailbox user, and if the message's Subject header has a special [sendas:ADDRESS]
string, the server will alter the From message header to be from ADDRESS@DOMAIN.
Installation requires a server capable of binding on port 25 for SMTP and 995 for POP3. A TLS certificate is also required to have a secure connection for authenticating to the server. See the installation guide for a full set of steps.
Building mailpopbox only requires Go and git. Clone the repository and type
go build
. Cross-compilation is supported since the server is written in pure Go.
The canonical home for the repository is on src.bluestatic.org, but it is also hosted on Github to enable collaboration.
Issues should be reported on the Github issue tracker.
Contributions are welcome. Please:
- Ensure tests pass and that new changes have adequate code coverage (
make coverage
) - Code is formatted with
go fmt
- Commit history is clean (one logical change per commit)
- Commit message is well-formatted
This server implements (partially) the following RFCs:
- Post Office Protocol - Version 3, RFC 1939
- Simple Mail Transfer Protocol, RFC 5321
- Message Submission for Mail, RFC 6409
- SMTP Service Extension for Secure SMTP over Transport Layer Security, RFC 3207
- SMTP Service Extension for Authentication, RFC 2554
- The PLAIN Simple Authentication and Security Layer (SASL) Mechanism, RFC 4616
- Simple Mail Transfer Protocol (SMTP) Service Extension for Delivery Status Notifications (DSNs), RFC 3461
- POP3 Extension Mechanism, RFC 2449