Stabilizing existing features, cleaning, upstreaming, automated testing, quality, etc.
We must also stabilize K2V in Garage.
Following aspects must be studied:
- The storage trait
- How emails are queried/streamed
- The co-routine architecture that requires cloning the HTTPClient and also requires multiple channels (maybe we could replace them with Streams?)
- The mailbox stuff split into a bayoou -> uid_index -> mailbox -> snapshot -> mailbox_view. The mail/query.rs file.
- Email streaming decoding
- Correctly deleting emails
Testing:
- Test webmail compatibility (Sogo, Roundcube, Rainloop, etc.)
Following features might be considered:
- (req) add opentelemetry observability & logging stuff
- (req) add an encoder for eml-codec, finalize some RFC, fuzz testing
- fuzzy search with tantivy
- (deep) integration with sogo
- a standalone mode (probably LMDB + filesystem)
- IMAP SASL
- OIDC
(Target: first production deployment)
CARDDAV
Standardize a ProtonMail-like encryption but only for the mailboxes.
Probably need to define a protocol, accessing the underlying storage does not seem to be a good idea.
Would be in the end a protocol where you fetch encrypted blobs
Publish a comprehensive threat/security model
Non-goal:
- encrypting emails end-to-end
- providing a client (android, iOS, desktop or web)
(Target: announce a public beta)
Email filtering and management, take inspiration of Hey.com, might implement sieve.
But usability must be put first.
Example:
- automatically expiring attachment
- classifying emails (personal correspondance, notification, newsletter, receipt, etc.)
- maybe auto-archive?
- maybe invitation system? maybe bind it to the Contact list?
- maybe IMAP quota
(Need to learn more about email workflows)
Stabilizing the software.
Code must be audited in term of quality, refactor must be done, it's a time to take care of the software, to think about long-term maintainability, maybe upstreaming what's needed, sync with deps, etc.
Following stuff might be considered:
- IMAP quota
- Implementing more IMAP extensions (SORT, THREADS, NOTIFY, OBJECT-ID, etc.)
Releasing Aerogramme as a PIM (email + contact + calendar) software that stands out for its robustness & privacy features.
Email federation (backport Kannader? MLS? MIMI? SIP?)
Maybe consider E2EE
What about DKIM? Other security protocols?
User-friendly integration of email broadcasting (mailing-list & newsletters).
Today newsletters (cf substack) & mailing-lists (cf framalistes) are a hot topic.
Careful thinking is needed on how to implement this feature, cf the Bedlam Incident that happened in all organizations I took part:
Implement other PIM protocols.
Candidates:
- JMAP
- Microsoft Exchange Active Sync
- Microsoft EWS
- Microsoft Graph
PGP or S/MIME backward compatibility?
WKD? Import user key?
0.3.0 CalDAV
CALDAV