Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/singpolyma/imapmd
Simple single-connection IMAP server for Maildir that speaks STDIN/STDOUT
https://github.com/singpolyma/imapmd
Last synced: about 1 month ago
JSON representation
Simple single-connection IMAP server for Maildir that speaks STDIN/STDOUT
- Host: GitHub
- URL: https://github.com/singpolyma/imapmd
- Owner: singpolyma
- License: isc
- Created: 2012-03-20T01:47:24.000Z (almost 13 years ago)
- Default Branch: master
- Last Pushed: 2012-06-23T00:52:44.000Z (over 12 years ago)
- Last Synced: 2024-10-15T11:34:34.078Z (3 months ago)
- Language: Haskell
- Homepage:
- Size: 180 KB
- Stars: 2
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
- License: COPYING
Awesome Lists containing this project
README
This server starts in the authenticated state (RFC2060 3.2), but accepts the LOGIN command while in that state with *any* username and password and always returns success. This is for compatability with clients that do not understand the PREAUTH greeting connections.
The uidlist file this server uses is the same format as dovecot's V3 uidlist files. The locking mechanism, however, is different. A POSIX fcntl advisory read lock MUST be acquired on uidlist.lock before reading uidlist. A POSIX fcntl advisory write lock MUST be acquired on uidlist.lock before beginning the process of writing out to a temp file and then renaming said temp file overtop of uidlist. This is to keep UIDs in sync across newly starting and concurrently running processes, so long as those processes are also monitoring for new mail with inotify (renames and deletes may be tracked, but will not affect the UIDs being in sync). The uidlist file is rewritten on every update to keep newly-starting processes in sync with already-running processes (though, again, likely the file only needs to be rewritten on new mail, as renames and deletes do not affect UIDs).