Getting Started
Requirements
- Python 3.11+
- A Zoho Mail account (free tier works)
- An app-specific password (see below)
Installation
Credentials
You need three things:
| Variable | Description |
|---|---|
ZOHO_EMAIL |
Your Zoho address, e.g. you@yourdomain.com |
ZOHO_PASSWORD |
Your Zoho login password |
ZOHO_APP_PASSWORD |
An app-specific password for SMTP sending |
ZOHO_REGION |
eu or com depending on where your account is hosted |
Generate an app-specific password
- Log into Zoho Mail
- Go to Settings → Security → App Passwords
- Click Generate New Password, name it anything (e.g.
zohomail-free) - Copy the generated password — you won't see it again
Note
Your regular login password works for reading (via the browser session), but Zoho requires an app-specific password for SMTP sending.
Configuration
Create a .env file in your project directory:
.env
ZOHO_EMAIL=you@yourdomain.com
ZOHO_PASSWORD=your_login_password
ZOHO_APP_PASSWORD=your_app_specific_password
ZOHO_REGION=eu
API_KEY=changeme # only needed for the REST API server
First run
On first run, Playwright opens a headless browser, logs in, and saves the session to ~/.zohomail_session.pkl. Subsequent calls reuse the cookie — no browser startup needed until the session expires (~30 days).
Built by MelkonTech