IMAP Server for golang
Go

README.md

go-IMAP Logo

Go IMAP Server

Travis CI Build Status

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.

NOT READY FOR PRODUCTION USE

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.

Supported Commands

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