Hi Andrew,
I don't have particular guide for setting up with postfix, but you can easily find tons of tutorials with various postfix deployment scenarios. We may add this kind of tutorial at some point.
Regarding future plans:
IMAP - this is probably most complicated component. IMAP has notion UID which in RFC (
http://tools.ietf.org/html/rfc3501#section-2.3.1.1) described as unique within mailbox and "assigned in a strictly ascending fashion in the mailbox". This is really complicated to achieve in distributed system without doing global locking. Current implementation of Cassandra counters is unreliable for this. The good news is that CAS support planned for C* 2.x (
https://issues.apache.org/jira/browse/CASSANDRA-5062) which can solve this particular problem. Overall IMAP is very complex and old protocol. I wish there would be more modern, REST based standard.
Having said that, we haven't really investigated IMAP implementation. First option would be James Protocols IMAP (
http://james.apache.org/protocols/imap4.html) as we already use LMTP and POP3 modules form this project. If you want to play with, this is good place to start.
Threading - to enable threading we'll need to have additional secondary indexes where index key will be based on "Message-ID", "References", "In-Reply-To" headers. When message is stored it can be added to the thread index. This is just initial thoughts. We'll need to take into account IMAP THREADS extension when designing this (
http://tools.ietf.org/html/rfc5256)
Search - I was thinking to implement pluggable interface which could be then extended and used with existing distributed search systems such as ElasticSearch or Solr. Again, need to keep in mind IMAP SEARCH (
http://tools.ietf.org/html/rfc3501#section-6.4.4)
There are no timelines to any of these features, but for us search has the highest priority among the item listed above.
Hope this was helpful and I would be happy to help with any these.
Many thanks,
Rustam.