Ahoj! I’m hoping to do to SMTP servers something similar that you do to email clients. I’ve got a basic SMTP server working - written in Rust and many ideas how to leverage existing SMTP infrastructure and standards. A social network or micro blogging could be built on top of emails. Federating e-mail with the Fediverse could be the last drop to win people away from the established corporate solutions. And delta chat looks great. Installing now on tablet and desktop.
One feature I’d like to configure is instant contact request on the server. You have that feature on the client, now I think it could work on the server too. Scenario… Someone is sending me a message. SMTP server rejects politely for policy reasons (as in graylist), but the client is notified about the attempt, if on-line then instantly. User can chose to welcome or refuse the contact. He can refuse verbosely or quietly. Later, delivery is retried - as required by SMTP standards - and either received if welcome, refused if not, or again temporarily refused if the user hasn’t done anything.
Another feature I have in mind is encryption at rest. Client shares the public key to the SMTP server and the server encrypts all incoming mail for that key automatically. I imagine this could be done transparently to be compatible with existing mail clients. With a clever support from the client it could be completely seamless to the user.
Another feature I have in mind is automatic account creation. You’ll send a signed message to say email@example.com with a command to claim the addresses included. The server automatically provisions an account for you and you could even authenticate using the private key… Registration fee could be included. In response to the claim message, the server could ask the user to send some bitcoins or what not otherwise drop the account after a week
Another feature I have in mind is that everyone runs their own mail server for their own domain on their tiny mobile devices or desktops + have a traditional SMTP for times offline. This could be coupled with dynamic DNS and standard MX prioritization. Providers would handout subdomains for this purpose.
Ideas are many, developer only one. Opinions, hints?