Updated
almost 6 years
ago.
5 hacker ♥️.
5 followers.
There are various email synchronization programs like offlineimap or mbsync, which have some inherent limitations:
- mbsync does not support IMAP IDLE
- offlineimap does not yet support Python 3, proper IDLE and threading support would need a complete rewrite
Features
- support only IMAP, no POP3
- IMAP IDLE support is a must, especially:
- reconnection of dropped IDLE connections
- support IDLE for all IMAP folders
- be able to synchronize IMAP <-> Maildir at first, IMAP <-> IMAP would be nice to have
- bullet-proof cryptography, especially with respect to certificate validation and resistance to downgrade attacks (preferably make the TLS version configurable)
- use inotify API to support immediate synchronization back to the server if a message changes locally
- as simple configuration as possible with good defaults
nice to have:
- incorporate an API for external tagging tools like notmuch to synchronize tags if the remote supports it
- GMail support
Implementation
Preferably in Rust, using the imap crate as the core.
Scope
Try to create a MVP, especially flesh out proper testing and learn enough about the problem.
This project is part of:
Hack Week 18
Activity
Comments
-
almost 6 years ago by cyphar | Reply
Just one word of warning (I ran into this last time I tried to write an IMAP client in Rust) -- the IMAP crates all appear to be either slightly or completely broken. There are several but they're all forks of one another and the "best looking" one requires tokio.
Similar Projects
This project is one of its kind!