Set up Strapi email over SMTP
Strapi's Email feature uses `sendmail` until you install a provider; for SMTP that's `@strapi/provider-email-nodemailer`, configured in `config/plugins.js` or `config/plugins.ts`. The Users & Permissions plugin needs its own fix: its account confirmation and reset password templates carry a **Shipper email** that defaults to `no-reply@strapi.io`, and Unitpost rejects that sender.
Create a send-only key
In Unitpost, open Settings → SMTP and create a send-only key. Both
defaultFromand the Users & Permissions Shipper email need to be on a verified domain.Install the Nodemailer provider
Shellnpm install @strapi/provider-email-nodemailer --saveConfigure the email plugin
providerOptionsgo to Nodemailer as they are:secure: falseon port 587 upgrades with STARTTLS, andrequireTLS: truerefuses to continue without it. For port 465, setsecure: true. Keep the key in.envasSMTP_PASSWORD.JavaScript// config/plugins.js module.exports = ({ env }) => ({ email: { config: { provider: "nodemailer", providerOptions: { host: env("SMTP_HOST", "smtp.unitpost.com"), port: env.int("SMTP_PORT", 587), secure: false, requireTLS: true, auth: { user: env("SMTP_USERNAME", "unitpost"), pass: env("SMTP_PASSWORD"), }, }, settings: { defaultFrom: "no-reply@yourdomain.com", defaultReplyTo: "support@yourdomain.com", }, }, }, });Restart and fix the shipper email
Restart Strapi so it loads the provider. Then open Settings → Users & Permissions Plugin → Email templates, edit each template, and set Shipper email to an address on your verified domain.
Send a test email
Under Settings → Email plugin → Configuration, type a Recipient email under Test email delivery and click Send test email. Recent versions also have Test connection, which checks the SMTP login without sending.