[LBBS-47] Email enhancements
General megaissue for broad email enhancements
SMTP
- Implement missing extensions, (many are called out at top of net_smtp) e.g.
- DSN full support - https://github.com/dinhvh/libetpan/blob/master/src/low-level/smtp/mailsmtp.c#L798
- https://datatracker.ietf.org/doc/html/rfc3461
- for noreply, indicate no DSN updates
- RFC 8461: https://datatracker.ietf.org/doc/html/rfc8461
- Ensure we don't autoreply when it's not appropriate: https://datatracker.ietf.org/doc/html/rfc3834 / https://utcc.utoronto.ca/~cks/space/blog/spam/range/71-80/
- ESMTP MAIL FROM ID (libetpan seems to try it?)
- LMTP? https://en.wikipedia.org/wiki/Local_Mail_Transfer_Protocol
- https://www.iana.org/assignments/mail-parameters/mail-parameters.xhtml
- https://cr.yp.to/smtp/ehlo.html
- https://datatracker.ietf.org/doc/draft-brotman-srds/
- DSN full support - https://github.com/dinhvh/libetpan/blob/master/src/low-level/smtp/mailsmtp.c#L798
IMAP
- Thou shalt use the LIST "" wildcard only with great care. If thou doth not fully comprehend the danger of "", thou shalt use only "%" and forget about the existance of "*".
- For BURL IMAP, we need to extract the Bcc from the submitted message and not include it in the outgoing message
- Still need a reliable client that supports BURL (so not Trojita). Spearhead getting it added to Thunderbird?
- For RELAY MailScript action, default is for sent items to go top-level Sent folder - may be desirable to have it go to appropriate remote (proxied) Sent folder. Would need a filter rule to move the message (wouldn't be able to determine the account for an APPEND following SMTP send, so BURL would be required to send+store)
- Implement missing extensions (many are called out at top of net_imap)
- Pipelining support (i.e. taking advantage of pipelining to process commands in true parallel)? But what clients can actually take advantage of that? Very high effort, very low reward - tabled for now, unlikely to ever be implemented.
- UIDONLY (https://datatracker.ietf.org/doc/rfc9586/)
- We don't keep a map of sequence numbers to UIDs per client (or at all), currently... what are the implications of this?
- Undocumented SCAN extension?: https://lists.andrew.cmu.edu/pipermail/cyrus-devel/2008-January/000730.html
- Store stats about IMAP command usage (e.g. COPY vs MOVE) as well as user agents (for IMAP and other protocols)
- could introduce a "peg counter API" for this
- https://datatracker.ietf.org/doc/draft-rjbs-mailmaint-imap-extensions-suggestions/
- https://datatracker.ietf.org/doc/draft-ietf-mailmaint-imap-uidbatches/
maildir
- How can we set the UID of
\Recentmessages, since we can't do stuff like this in thenewmaildir subdirectory? This is a difficult problem to work through, see: https://stackoverflow.com/questions/76787944/how-can-the-maildir-format-accomodate-flags-uids-on-recent-messages/
Mail filtering: has its own issue at LBBS-31
Other
- Make
mod_mailreloadable while running, so it's more production-grade, usable for hosting public mailboxes where they can be added without disrupting the system - Incremental/differential backup script using tar for maildir (useful if it's quite large, to avoid full backups each time)
- General load testing (e.g. folder with 100k messages)
- Be able to scale IMAP+POP3 and SMTP independently (potentially on separate servers?). Would need LMTP/LDA to send messages from SMTP -> IMAP+POP3 server
- Block email forwarding by NOT signing certain emails with DKIM: https://utcc.utoronto.ca/~cks/space/blog/spam/BlockingAutomaticForwarding
- Set up a filtering rule to auto process incoming DMARC reports and run the opendmarc scripts on them to process them. Include in the rules template
- Complaint Feedback Loop support, e.g. https://senders.yahooinc.com/best-practices/
- https://datatracker.ietf.org/doc/draft-ietf-mailmaint-autoconfig/
- BIMI: https://bimigroup.org/implementation-guide/
Comments
You must be logged in to leave a comment.