AgregoreWeb / agregore-browser

A minimal browser for the distributed web (Desktop version)
https://www.youtube.com/watch?v=TnYKvOQB0ts&list=PL7sG5SCUNyeYx8wnfMOUpsh7rM_g0w_cu&index=14
GNU Affero General Public License v3.0
741 stars 66 forks source link

email: protocol handler #207

Open RangerMauve opened 1 year ago

RangerMauve commented 1 year ago

It'd be cool if Agregore had first class support for sending/reading emails from IMAP/SMTP providers.

Protocol scheme could look something like email://username:password@domain/pathname/qiquery

SMTP/IMAP server lookup will be performed using DNS SRV record lookup so that you can just use your regular email address and not need to do extra configuration.

Sending email would work by adding an email to the Outbox folder which would be special cased to invoke SMTP to send the email.

Might want to think more about the protocol scheme though. Maybe it should be imap+smtp:// to be more clear what it's doing?

Searches should use querystrings for parameters.

Doing searches in folders should be paged by default by doing a 301 to redirect to the paged URL if a page is not specified.

Should we render pages to markdown if the Accept header indicates it's a top level frame? And then have a JSON API for the rest? Maybe for HTML we can render stuff as a table?

Basic Auth should be used for athentication and we shouldn't store cookies or anything. That way an app can only read emails it's explicitly been given access to.

We shouldn't cache emails anywhere by default and it's up to apps to figure that out.

Should figure out how to serve email messages. Maybe also based on Accept headers?

When doing an email listing, maybe we should have links to the email content instead of having it in the message data.

Libraries to use:

techie177 commented 1 year ago

I had just recently switched to this open-source email app when I was looking for a different one to use after my previous email app was getting overly buggy and crashing on my phone https://play.google.com/store/apps/details?id=eu.faircode.email https://email.faircode.eu/ Maybe stuff here could be of help/use for this enhancement idea?

RangerMauve commented 1 year ago

Maybe stuff here could be of help/use for this enhancement idea?

Nice, I'll look over it. Personally I was thinking a lot of the features in there would be something that people build on top of the protocol handlers for their own use cases. I'll probably be building a basic client at some point, but I'm not sure what it'd look like yet. šŸ¤”