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.

Looking for hackers with the skills:

imap email rust

This project is part of:

Hack Week 18

Activity

  • over 1 year ago: okurz liked next-generation email synchronization program
  • over 1 year ago: aspiers liked next-generation email synchronization program
  • over 1 year ago: yfjiang liked next-generation email synchronization program
  • over 1 year ago: jbaier_cz liked next-generation email synchronization program
  • over 1 year ago: mbrugger liked next-generation email synchronization program
  • almost 2 years ago: dancermak started next-generation email synchronization program
  • almost 2 years ago: dancermak added keyword "imap" to next-generation email synchronization program
  • almost 2 years ago: dancermak added keyword "email" to next-generation email synchronization program
  • almost 2 years ago: dancermak added keyword "rust" to next-generation email synchronization program
  • almost 2 years ago: dancermak originated next-generation email synchronization program

  • Comments

    • cyphar
      over 1 year 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!