I was interested in hosting my own mail server that provides a similar level of privacy for users as Protonmail, ie the server admin cannot read any emails, even those which are not E2EE with PGP. Is there a self-hostable solution to this?
I'm aware the server admin can't read emails that were sent encrypted using the user's PGP key, but most emails I get are automated emails from companies/services/etc without the option to upload a public key to send the user encrypted email. If you're with a service like Protonmail, the server admin still cannot read even these emails.
This is a misconception. If the sender is outside proton mail the emails arrive in plain text. So it is possible for proton to read those emails. It is just that they pinky promise not read them and immediately encrypted them with your key. But if they wanted to they can read and moreover SMTP means your email has already traveled through multiple MX which could read your email but This is mostly not an issue since most email provider do encrypt with SSL of receiving MX but you might want to check few services use very very outdated softwares. But keep in mind SSL encryption is with Proton's keys and by necessity they have to first decrypt the SSL encrypted email and then encrypt with your key
Well I know that, that's kind of the point of any encryption at rest that isn't also E2EE. I am the server admin in this case so I trust my own pinky promise that I'm encrypting emails at rest.
in case you're not already aware; mail servers are favorite target of malware & intrusion enthusiasts so be sure to approach your build with security at the forefront of all your actions.
i found out; well after the fact; that my build got pwned at step 2 after spending money and weeks worth of time to do the same thing you're trying to do and i wish someone had clued me into this little bit of common knowledge back then; good luck.
I don't like using "encrypted" email because in fact email is really not a secure protocol by default, you can send secure email to each other but if you're communicating to gmail, yahoo, outlook... You will lost all your privacy. Hosting an email service is good but do not use encryption when talking randomly to gmail accounts.
If the mail is sent unencrypted the admin can read it. What I have is a script that encrypt incoming e-mail with the users key, so that they are stored encrypted on the harddrive. That at least protect against an intruder reading past e-mails. I use a Perl script written by Mike Cardwell for that.
Another service you might like to have for your users is WKD/WKS, so that senders clients can automatically fetch the public key for your users.
As someone who used to maintain an email setup for a small company, I would stay far away from self-hosting Email.