Hello everyone! I'm writing this lines because the delayed release of dmc that was announced few mails ago.
The reason for the lagged release is because of the lack of time to finish the design and implementation :( We plan to release it before the end of the year ;) hopefully before the end of this month. The current status of the project is not to be released. I know that many of you are interested in the code to start playing with it, but I want to get a working proof of concept with mostly decent code before pushing it to the community. Nibble and me have been working on it and actually there's support for: Networking: - plain - ssl (no certificate check yet) - no starttls support (but can be easily implemented) Supported mail sources: - pop3: 116 LOC - imap4: 221 LOC - mbox: 150 LOC - mdir: 80 LOC Attachments support: - dmc-pack: handles packing/unpacking of attachments (150 LOC) Addressbook support: - dmc can read/edit a simple addressbook file Multiple account support: - Multiple accounts can be configured Filtering: - dmc-filter allows to filter body, and add/get/remove headers from stdin. It is 63 LOC. Tagging support - dmc-tag: (120LOC) handles a database of files and tags. it can get all tags matching N tags (AND op) Sending mails: - Only msmtp is supported atm. But !mail and native smtp protocols will be supported at some point (0.2) SLOCCount measures the project in 1262 LOC. All those mail source applications understand unix-like commands from stdin and throw status messages to stdout and command output body to stderr. This way you can use them as shell applications or manage them as daemons. (This is what 'dmc start' does) I don't really think the project can bypass the 2kLOC limit, and actually the whole project consists in 9 programs that interact together using fifos and pipes. So it opens many scripting possibilities, but enforces a centralized management using the root 'dmc' program. Some of those programs are written in C, and some other in shellscript, But the plan is to rewrite everything in C at some point. The missing points before 0.1 are: - standarized output for all protocol handlers - basic unidirectional sync support for pop3/imap4 Syncronization methods are unidirectional and limited atm. We don't plan to get everything working for 0.1 ;) In the future I want to manage online and offline accounts, thanks to the daemons you can recycle a single connection along the time or just use a local cache, so you can work offline and then resync directories when you get online. All this information is stored inside ~/.dmc. I have also started to write a graphical interface. I have choosed Gtk and Vala for it, but all the features will be accessible from commandline. I don't plan to write a ncurses frontend at the moment, but shouldn't be hard to do. (yeah I suck ;) but the gtk gui will be keyboard friendly. I'm not sure how it will work with large email boxes, but the mails can be automatically tagged to get reduced views of the whole mail box. I have attached the documents explaining the way how the protocol programs can be used and another describing the GUI panel layouts. Let me know your wishes and ideas. --pancake
gui
Description: Binary data
pipeline
Description: Binary data