EthaMail
A bring-your-own-mailbox email client. Point it at any IMAP account and it works.
Connecting an account
The connect screen takes IMAP host, SMTP host, port, username and password. The server verifies both legs before saving anything, so a bad SMTP port fails at connect time rather than on the first send.
How the server holds state
One API server owns every IMAP connection. Clients never talk to a mail server directly, which is what makes the Tauri and Capacitor targets thin rather than full rewrites.
Folders and sync
Folders are read from the server's own list. There is no local mirror yet; the client fetches on demand and caches in memory for the session.
Sending
Sends go through nodemailer using the SMTP details from the same account. The sent copy is appended to the IMAP Sent folder by the server, not by the client.
POST /api/messages
{
"to": ["someone@example.com"],
"subject": "Re: the thing",
"text": "..."
}