Email-first connect
Settings come from presets, MX, autoconfig and Thunderbird's database. Errors name the step that failed, in plain words.
iCloud, Yahoo, AOL, Fastmail, GMX, Zoho, Yandex or a company's own domain, on the same Email API as Gmail and Outlook. Your users type their email address and Zernio finds the server settings.

iCloud, Yahoo, GMX
Gmail
Outlook
One hosted link finds the server settings. Gmail and Microsoft addresses go to their own sign-in; everyone else gets their provider's app-password steps.

POST /v1/email/messages
curl -X POST "https://zernio.com/api/v1/email/messages" \-H "Authorization: Bearer $ZERNIO_API_KEY" \-H "Content-Type: application/json" \-d '{"accountId": "acc_xxx","to": [{ "email": "lena@northwind.io", "name": "Lena" }],"subject": "Your demo on Thursday","text": "Hi Lena, see you Thursday at 2 pm."}'
Send, read and reply with the same requests you use for Gmail and Outlook.

account.connected
maria@icloud.com
email.opened
Your demo on Thursday
message.received
Lena Fischer in iCloud Mail
New mail, opens, clicks, replies and bounces arrive as webhooks, and so does a mailbox that needs reconnecting.
Settings come from presets, MX, autoconfig and Thunderbird's database. Errors name the step that failed, in plain words.
Drafts live in the user's own Drafts folder, versioned so a person approves exactly one. Send up to 30 days later.
List, search, read, send, reply, forward, move and trash, from the user's own address. Sent mail is filed in their Sent folder.
Passwords are stored encrypted. When one stops working, you get account.disconnected with a reconnect link that asks only for the new password.
Open, click and reply tracking, and an email.bounced webhook with a recommended action.
Send from addresses you declare for the mailbox, with a signature stored in Zernio.
Write it yourself with the SDKs, hand it to an agent over MCP, or run it from a shell.
Connect a mailbox, send the first email and get a webhook for every reply.