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

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

  • Comments

    • cyphar
      about 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

    SUSE Manager Cluster Extension (PoC) by bmaryniuk

    Since SUSE Manager doesn't scale out and stacki...


    Kanidm: A safe and modern IDM system by firstyear

    This hackweek I'll be working on Kanidm, an IDM...