lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Hello,

Bellow is a preview of a diminutive IMAP [1] server implemented in Lua:

imap://lua:lua@svr225.stepx.com:1143/inbox

For these brave enough to give it a try, the user name and password is lua (plain login, no starttls, nor ssl). 

For example:

$ telnet svr225.stepx.com 1143
Trying 212.55.219.225...
Connected to svr225.stepx.com.
Escape character is '^]'.
* ok imap4rev1
123 login lua lua
123 ok login
123 select inbox
* 1000 exists
* 0 recent
* flags (\answered \deleted \draft \flagged \seen)
* ok [permanentflags ()] done
* ok [uidnext 88836] done
* ok [uidvalidity 15986] done
123 ok [read-only] select
123 fetch * fast
* 1000 fetch (flags (\seen) internaldate "27-Feb-2012 01:31:18 +0000" rfc822.size 13981)
123 ok fetch
123 logout
* bye imap4rev1
123 ok logout

The demo server sports the content of the Lua mailing list since its inception until February 2012. About 88K messages.

The server is read only and fronts an email archive stored in SQLite.

The server side implementation details can be found bellow:

http://dev.alt.textdrive.com/browser/Mail/IMAP.lua#L523
http://dev.alt.textdrive.com/browser/Mail/IMAPFetch.lua#L747
http://dev.alt.textdrive.com/browser/Mail/IMAPSearch.lua#L498

The server has been tested for interoperability with the following libraries:

- uw-imap c-client 
- JavaMail
- Perl Mail::IMAPClient
- Python imaplib 
- Ruby Net::IMAP

And the following email clients:

- alpine
- Apple Mail Mac OS X
- Apple Mail iOS
- Mozilla Thunderbird
- Mulberry
- GyazMail
- Sparrow

As the IMAP protocol is rather, hmm, "challenging", help with interoperability testing would be much appreciated :)

If you manage to connect (or not) to the demo server, could you report back what client or library did or didn't work as expected?

Thanks in advance.

Cheers,

--

[1] http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol