Download mode needs nothing. Email mode sends the EPUB straight to your Kindle — it takes ~10 minutes to set up, once.
← Back to home@kindle.com address. It stores nothing, and nothing ever reaches the developer.The button deploys the project (it reads netlify.toml, base directory server). Or manually: sign in at app.netlify.com, then drag the server/ folder onto the Deploys area, or connect the Git repo with Base directory = server.
You need SMTP credentials for your mailbox — always an app password, never your normal login password.
| Provider | SMTP host / port | App password |
|---|---|---|
| Gmail | smtp.gmail.com / 465 | myaccount.google.com/apppasswords (2FA required) |
| Fastmail | smtp.fastmail.com / 465 | Settings → Privacy & Security → App Passwords → new, access IMAP/SMTP |
| iCloud+ | smtp.mail.me.com / 587 | appleid.apple.com → App-Specific Passwords |
| Other | your provider's SMTP | your provider's app-password page |
Site configuration → Environment variables → add these (scope: Functions):
SMTP_HOST=smtp.gmail.com
SMTP_PORT=465
SMTP_SECURE=true
SMTP_USER=you@example.com
SMTP_PASS=your_app_password
SMTP_FROM=you@example.com
RELAY_TOKEN=a-long-random-string
RELAY_TOKEN is optional but recommended — it stops anyone else using your public endpoint. Generate one with:
node -e "console.log(require('crypto').randomBytes(24).toString('base64url'))"
https://<your-site>.netlify.app/.netlify/functions/send in a browser: it should say “Method not allowed” (not a 404).Amazon silently drops documents from addresses you haven't approved.
SMTP_FROM address → Add.…@kindle.com address.Extension → Settings → Send by email, then fill:
…@kindle.com from step 4.3https://<your-site>.netlify.app/.netlify/functions/sendRELAY_TOKEN from step 3 (if you set one)Save, open an article, hit Send to Kindle — it arrives in a few minutes. 🎉
| Symptom | Cause / fix |
|---|---|
Relay: 404 | Wrong relay URL — it must end with /.netlify/functions/send |
Relay: 401 | Token mismatch — the extension's token must equal RELAY_TOKEN |
Invalid login (500) | Wrong SMTP_USER/SMTP_PASS — use an app password |
ECONNREFUSED 127.0.0.1 | SMTP_HOST not set, or you didn't redeploy after adding env vars |
| Sent OK but nothing on the Kindle | Sender not on Amazon's approved list, or wrong @kindle.com address |