The way to do it is to have it be a standard feature of the email client. Your client, if it supports it, generates the public/private key automatically. Every time it sends an email, it includes the public key. Every time it receives an email, it stores the received public key if there is one. Every time an email is sent, it encrypts it automatically if the address book has the public key.
Over time, it will work its way into most peoples' email, whether they are aware of it or not.
I know the metadata will still be plaintext, but if I am sending my tax return to my accountant, I don't really care if someone discovers that I am sending my tax return, but I do care that the tax return is encrypted. And I would demand that my accountant upgrade his email client.
Missing - key backup/escrow, verifiable trust (you can't just trust the first key sent to you for a specific email address), key revocation, and portability.
Solve too many of those problems and you've invented PKI...
There was a company that offered a product for Windows 95/98 users around 2000 that did that, except it worked with existing email clients instead of requiring new ones. It worked reasonably well, as long as the user understood the limitations such as the metadata issue.
There was no common extension interface for the major email clients (and many didn't have any extension support), so their biggest technical challenge was finding a reasonable way to hook in between the user's email client and the network.
Their first approach was to have their program run as a daemon that implemented SMTP and POP3, and the email client's proxy settings were changed to use the daemon as a proxy. Their setup program recognized the top email clients and know how to change their proxy settings. For other clients the user might have to manually change their proxy settings.
Later they switched to using the LSP interface to hook into the network stack to intercept and modify email regardless of what email client was being used.
Over time, it will work its way into most peoples' email, whether they are aware of it or not.
I know the metadata will still be plaintext, but if I am sending my tax return to my accountant, I don't really care if someone discovers that I am sending my tax return, but I do care that the tax return is encrypted. And I would demand that my accountant upgrade his email client.