Check out this much more active and mature project instead:
https://github.com/emersion/go-imap
Barebones IMAP4rev1 server for golang. Designed for integration into a backend app to provide email client access.
Features a simple API for implementing your own email storage by implementing golang interfaces. Currently a dummy (in-memory) storage is included, with plans to include MySQL storage. This would make it simple to integrate into a backend application to allow users to drag-drop emails into the application, without messing around with maildir.
Although it would be possible to implement and plug in a maildir storage interface, that would defeat the purpose of this project and there are much better, tried and tested open source and commercial solutions that have been around for a long time (Courier, Dovecot etc). The goal of this project is to provide simple IMAP access to some kind of existing system without the overhead of installing a full-blown IMAP/POP3 mail server.
Currently only plaintext authentication is implemented. This is really bad, don't use it in any kind of environment where actual passwords or sensitive emails exists. Actually don't use it anywhere.
Command | Planned | Implemented | Tests |
---|---|---|---|
CAPABILITY | ✓ | ✓ | ✓ |
NOOP | ✓ | ✗ | ✗ |
LOGOUT | ✓ | ✓ | ✓ |
AUTHENTICATE | ✓ | ✓ | ✗ |
LOGIN | ✓ | ✓ | ✗ |
STARTTLS | ✓ | ✗ | ✗ |
EXAMINE | ✓ | ✓ | ✗ |
CREATE | ✓ | ✗ | ✗ |
DELETE | ✓ | ✗ | ✗ |
RENAME | ✓ | ✗ | ✗ |
SUBSCRIBE | ✗ | - | - |
UNSUBSCRIBE | ✗ | - | - |
LIST | ✓ | ✓ | ✓ |
LSUB | ✓ | ✓ | ✓ |
STATUS | ✓ | ✓ | ✓ |
APPEND | ✓ | ✓ | ✓ |
CHECK | ? | ✗ | ✗ |
CLOSE | ✓ | ✓ | ✗ |
EXPUNGE | ✓ | ✓ | ✓ |
SEARCH | ✓ | ✗ | ✗ |
FETCH | ✓ | ✓ | ✓ |
STORE | ✓ | ✓ | ✓ |
COPY | ✓ | ✓ | ✓ |
UID | ✓ | ✓ | ✓ |