Set up email delivery

Download mode needs nothing. Email mode sends the EPUB straight to your Kindle — it takes ~10 minutes to set up, once.

← Back to home
Why a relay? Browsers can't send email (no SMTP). The relay is a stateless function that forwards the EPUB through your mailbox to your @kindle.com address. It stores nothing, and nothing ever reaches the developer.
Step 1

Deploy your own relay on Netlify (free)

Deploy to Netlify

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.

Step 2

Get an email app password

You need SMTP credentials for your mailbox — always an app password, never your normal login password.

ProviderSMTP host / portApp password
Gmailsmtp.gmail.com / 465myaccount.google.com/apppasswords (2FA required)
Fastmailsmtp.fastmail.com / 465Settings → Privacy & Security → App Passwords → new, access IMAP/SMTP
iCloud+smtp.mail.me.com / 587appleid.apple.com → App-Specific Passwords
Otheryour provider's SMTPyour provider's app-password page
Step 3

Set the environment variables on Netlify

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'))"
Then Deploys → Trigger deploy — env-var changes only apply on a new deploy. To check it's live, open https://<your-site>.netlify.app/.netlify/functions/send in a browser: it should say “Method not allowed” (not a 404).
Step 4

Approve your sender on Amazon (the step people forget)

Amazon silently drops documents from addresses you haven't approved.

  1. Open Manage Your Content and Devices → Preferences → Personal Document Settings (use your country's Amazon): .com · .co.uk · .fr · .de · .ca
  2. Under Approved Personal Document E-mail ListAdd a new approved e-mail address → enter your SMTP_FROM address → Add.
  3. On the same page, under Send-to-Kindle E-Mail Settings, copy your device's …@kindle.com address.
Step 5

Configure the extension

Extension → SettingsSend by email, then fill:

Save, open an article, hit Send to Kindle — it arrives in a few minutes. 🎉

Troubleshooting

SymptomCause / fix
Relay: 404Wrong relay URL — it must end with /.netlify/functions/send
Relay: 401Token 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.1SMTP_HOST not set, or you didn't redeploy after adding env vars
Sent OK but nothing on the KindleSender not on Amazon's approved list, or wrong @kindle.com address