Saleor does not send email to customers. Customer Emails does — on Saleor Cloud from 3.23. Self-hosting, or still on 3.22? Use the legacy SMTP app.
- Shipped copy in 10 languages — keep it, or rewrite every line
- Follow the shopper’s language, or lock a channel; gaps fall back so the inbox is never empty
- Your SMTP per channel (provider APIs next)
- One Translations grid that shows what is still missing
- Saleor retries do not double-send; refused addresses are suppressed
- Test any notification without placing an order
Their language after checkout
Per channel, follow the language on the order or account, or lock the channel to one language. Ten languages ship ready to send. Missing copy falls back to the shipped translation, then English. The Translations grid shows what is still missing or only built-in — so you know what to write next, not what already went out wrong.
Templates you can actually own
Bodies are MJML with Handlebars — the same payload Saleor already puts on the webhook. Branding (store name, logo, colors, help links) is written once and flows into every message. Edit the shared layout for header and footer, or open a single notification and change the subject and body. Send test email from the editor uses sample data; you do not need to place a real order.
Your SMTP — one connection per channel
Connect the mail server you already trust. The first connection is the store default; extra connections lock to specific channels so a customer is never mailed twice for the same event. Provider APIs come next. Until then, host, port, encryption, and sender identity are all on the connection card.
Retries that do not double-send
Saleor retries webhooks. The app claims the event before SMTP, so a retry does not hit the inbox again. When the server refuses an address (550, 551, 553), it is suppressed so the next event does not bounce the same inbox.
