PrestaShop7 min read

PrestaShop email deliverability: switch to SMTP, then seed-test.

PrestaShop ships with PHP mail() as the default transport. That path fails authentication at Gmail and Outlook. Here is the exact Back Office walk-through, the best modules, and a seed-test plan.

PrestaShop powers hundreds of thousands of European shops, but its default email transport is fundamentally unsuited to modern Gmail, Outlook, and Yahoo requirements. Out of the box, PrestaShop hands transactional messages to PHP's mail() function, which leaves the server on the shared web host's IP. The envelope sender is on a domain you do not control, SPF fails, DKIM is absent, and the message is treated as unauthenticated. The fix is straightforward: enable SMTP with a dedicated provider, set up three DNS records, then verify with a seed test before enabling customer sends.

The short diagnosis

If PrestaShop emails never arrive or land in Spam, swap Use PHP's mail() function for Set my own SMTP parameters in Advanced Parameters → Email, point it at Postmark / SendGrid / Brevo, and publish SPF + DKIM + DMARC for the From domain. That fixes 90 percent of PrestaShop deliverability complaints.

Why PrestaShop defaults fail deliverability

PrestaShop's Mail module offers three options: Never send emails, Use PHP's mail() function, and Set my own SMTP parameters. The middle option is selected by default on most installers, and that is where the trouble begins.

PHP's mail() hands the message to the local MTA on whatever host PrestaShop is installed on. That host:

  • Uses a shared IP that your SPF record does not authorise.
  • Signs DKIM (if at all) for the host's domain, not yours.
  • Has no per-domain sender reputation — the IP's reputation is a blend of every site on that server.
  • Often sits on public blocklists because spammers target cheap shared hosts.

Gmail and Outlook run spf=, dkim=, and dmarc= checks against the From header and envelope before routing. When PHP mail fails all three, you land in Spam — or get rejected outright.

Configure SMTP in PrestaShop Back Office

The SMTP path puts you on a dedicated provider with a known good reputation. Here is the walk-through.

  1. Log in to PrestaShop Back Office as an admin.
  2. Navigate to Advanced Parameters → Email. On PrestaShop 1.7 and 8.x this is the correct menu path.
  3. Under Email, select Set my own SMTP parameters (for advanced users ONLY).
  4. Fill in the fields:
    • Mail domain name: your shop domain (e.g. shop.example.com).
    • SMTP server: your provider's SMTP hostname.
    • SMTP user and SMTP password: from the provider's dashboard.
    • Encryption: TLS (port 587) or SSL (port 465).
    • Port: 587 for TLS, 465 for SSL.
  5. Click Save, then use the Test your email configuration box at the bottom with your own address.

Recommended SMTP providers for PrestaShop

Not every provider is a good fit for PrestaShop. Some cap volume, some reject domains younger than 30 days, some have terrible soft- bounce handling. Three that work well:

Postmark:
  SMTP host: smtp.postmarkapp.com
  Port:      587 (TLS)
  Username:  <server API token>
  Password:  <server API token>
  Notes:     Transactional only, excellent reputation, ~1s delivery.

SendGrid:
  SMTP host: smtp.sendgrid.net
  Port:      587 (TLS)
  Username:  apikey
  Password:  <API key>
  Notes:     Generous free tier (100/day), good EU routing.

Brevo (Sendinblue):
  SMTP host: smtp-relay.brevo.com
  Port:      587 (TLS)
  Username:  your-brevo-login@brevo.com
  Password:  <SMTP key>
  Notes:     EU-based, good for GDPR-sensitive shops.

For very small shops Google Workspace SMTP also works, but you will hit the 2,000-recipients-per-day cap on busy Black Friday weekends. Dedicated transactional providers are more forgiving.

SPF, DKIM, DMARC — non-negotiable

SMTP alone does not pass authentication. You still have to tell the world that the SMTP provider is allowed to send for your domain.

  • SPF: a single TXT record at the apex of your domain. Example for Postmark: v=spf1 a mx include:spf.mtasv.net ~all.
  • DKIM: the provider generates a public-key selector (e.g. 20260101._domainkey.yourdomain.com). You publish a CNAME or TXT, the provider signs outgoing mail with the private half.
  • DMARC: a TXT record at _dmarc.yourdomain.com. Start with v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com.

Once the DNS propagates (usually 15 minutes), send yourself a test message and inspect headers. You want three green lines: spf=pass, dkim=pass, dmarc=pass.

Better options: PrestaShop mail modules

The built-in SMTP works but lacks retry logic, queueing, and analytics. Modules from the PrestaShop marketplace can add these and usually pay for themselves in a month.

  • SMTP Mail Pro — paid module that queues failed messages, retries on soft bounce, and logs every send with provider response codes.
  • SendGrid / Mailgun native modules — use the provider's API instead of SMTP. Faster, better error reporting, handles large attachments.
  • Email Alerts Pro — extends PrestaShop's built-in alerts with more trigger points (abandoned cart, back-in-stock, loyalty points).
Watch out for the default From address

PrestaShop often uses the shop contact email (e.g. noreply@yourdomain.com) as the From header. Make sure that mailbox actually exists and that the domain matches your authenticated SMTP provider. A From on a different domain than your DKIM signer will fail DMARC alignment.

Seed-test before enabling customer sends

Never trust the Back Office test button alone — it only confirms SMTP credentials work. You need to see where real order emails actually land across mailbox providers.

  1. Create a test product priced at zero or one cent.
  2. Place an order using a seed-test address. Tools like the free inbox checker give you one address that forwards to 20+ real mailboxes.
  3. Review placement at Gmail, Outlook, Yahoo, iCloud, ProtonMail, Mail.ru, Yandex, and GMX.
  4. Check headers in Gmail. Confirm dkim=pass header.d=yourdomain.com. If DKIM shows the provider's domain instead, your custom DKIM CNAMEs are not configured.

Re-run this test after every major PrestaShop upgrade. Module updates sometimes overwrite the Email transport setting, silently reverting you to PHP mail.

PrestaShop integration in beta

A native PrestaShop integration is in private beta. It monitors transactional sends, alerts when DMARC drifts, and seed-tests order-confirmation templates before every store deploy.

→ Join the beta waitlist

Frequently asked questions

Why does PrestaShop default to PHP mail() if it is so bad?

Historical reasons. PrestaShop 1.x was written when shared hosting with working sendmail binaries was the norm and authentication standards were looser. Modern Gmail and Outlook require SPF + DKIM + DMARC, which that path can never provide cleanly.

Can I use my own cPanel email account for SMTP?

Technically yes, but you inherit the host's IP reputation and any blocklist issues. For anything above test traffic, use a dedicated provider like Postmark or SendGrid.

Do I need a different SMTP account per store in a multistore setup?

Not necessarily. One provider account can authenticate multiple domains if you add DKIM records for each. The Back Office lets you set different From addresses per store while sharing the same SMTP relay.

How do I debug when SMTP just silently fails?

Enable debug mode in PrestaShop (Advanced Parameters → Performance) and check var/logs/. PHPMailer errors are logged there. Common issues: wrong port, blocked outbound 587, expired API key.

Related reading

Check your deliverability across 20+ providers

Gmail, Outlook, Yahoo, Mail.ru, Yandex, GMX, ProtonMail and more. Real inbox screenshots, SPF/DKIM/DMARC, spam engine verdicts. Free, no signup.

Run Free Test →

Unlimited tests · 20+ seed mailboxes · Live results · No account required