IMAP Server for golang
Go
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
assets
conn
demo More updates to reference mailstore package #10 Jun 9, 2015
mailstore
types
util Fix golint issues and README Aug 11, 2015
.gitignore
.travis.yml
LICENSE
Makefile
README.md Make build status a link to Travis page Sep 15, 2015
server.go
server_test.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