Magento's default mail function uses PHP's mail() which sends through the server's local MTA with no authentication. This guarantees poor deliverability. Configure an external SMTP provider (SendGrid, Mailgun, or Amazon SES) through Magento's SMTP settings or a module, set up SPF, DKIM, and DMARC for your sending domain, and separate transactional from marketing email streams.
Magento/Adobe Commerce Email Configuration and Deliverability Guide
The Default Magento Email Problem
Out of the box, Magento sends email through PHP's mail() function. This means:
- Email sends from your web server's IP address (usually a shared hosting IP with terrible email reputation)
- No DKIM signing
- No SPF alignment (the sending IP doesn't match your domain's SPF record)
- No TLS encryption
- No delivery tracking or analytics
Every order confirmation, shipping notification, and password reset goes through this pipeline. If your store depends on transactional email (and it does), this is unacceptable.
Setting Up SMTP in Magento
Adobe Commerce 2.4+ (Built-in)
Navigate to Stores → Configuration → Advanced → System → Mail Sending Settings:
Transport: SMTP
Host: smtp.sendgrid.net (or your ESP)
Port: 587
Auth: Login
Username: apikey (for SendGrid) or your ESP username
Password: Your API key or password
SSL: TLS
Open Source Magento (Module Required)
Install an SMTP module:
- Mageplaza SMTP (free, most popular)
- Magepal SMTP (lightweight)
- Ebizmarts SMTP (established)
composer require mageplaza/module-smtp
bin/magento setup:upgrade
bin/magento cache:clean
Then configure in Stores → Configuration → Mageplaza → SMTP.
Authentication Setup
After configuring SMTP, set up email authentication for your sending domain:
SPF Record
Add your ESP's sending IPs to your SPF record:
v=spf1 include:sendgrid.net ~all
DKIM
Generate DKIM keys through your ESP and add the CNAME or TXT records to your DNS. Each ESP has specific requirements — check our DKIM guides.
DMARC
Add a DMARC record once SPF and DKIM are passing:
_dmarc.yourdomain.com TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]"
Practitioner note: Magento stores have the worst default email configuration of any major ecommerce platform. I've audited stores doing $10M+ in revenue that were sending order confirmations through an unauthenticated shared hosting IP. The fix takes an hour and the deliverability improvement is immediate.
Separating Transactional and Marketing Email
Don't send marketing email through the same Magento SMTP configuration as transactional email. Use separate streams:
- Transactional (order confirmations, shipping, password resets): SendGrid, Mailgun, or Amazon SES via SMTP
- Marketing (newsletters, promotions, abandoned cart): Klaviyo, Mailchimp, or another ESP with Magento integration
This protects your transactional reputation from marketing list issues. If a promotional campaign generates spam complaints, your order confirmations still reach the inbox.
Magento-Specific Email Settings
Store Email Addresses
Stores → Configuration → General → Store Email Addresses
Configure all five sender addresses (General Contact, Sales, Customer Support, Custom 1, Custom 2) with real, monitored email addresses on your domain. Don't use noreply@ for order-related emails — customers need to reply.
Transactional Email Templates
Marketing → Email Templates
Customize the default templates. Magento's built-in templates are functional but have poor image-to-text ratios. Keep customizations clean:
- Table-based layout
- Inline CSS
- Alt text on all images
- Under 80KB total weight
Practitioner note: The abandoned cart recovery emails in Magento are the most deliverability-sensitive because they go to a mix of engaged and unengaged recipients. If your SMTP isn't authenticated, these are the first emails to hit spam.
Monitoring
Once your SMTP is configured:
- Google Postmaster Tools — monitor Gmail inbox placement
- ESP dashboard — track delivery rates, bounces, and complaints
- Bounce handling — configure your ESP to suppress bounced addresses
- Magento logs — check
var/log/for email sending errors
Common Magento Email Issues
| Problem | Cause | Fix |
|---|---|---|
| Emails not sending at all | SMTP misconfiguration or module conflict | Check SMTP credentials and test connection |
| Emails in spam folder | No authentication, shared IP | Set up SPF, DKIM, DMARC with proper ESP |
| Slow email delivery | Synchronous sending blocking page loads | Enable async email (Stores → Configuration → Sales → Sales Emails → Asynchronous Sending) |
| Duplicate emails | Cron job misconfiguration | Check cron schedule, verify only one email cron is running |
For a full Magento email infrastructure audit, reach out for a consultation.
Sources
- Adobe Commerce: Configure Email Communications
- SendGrid: Magento Integration
- Mageplaza: SMTP Extension
- Google: Postmaster Tools
v1.0 · April 2026
Frequently Asked Questions
Why do Magento emails go to spam?
Magento's default configuration uses PHP mail() which sends from the web server with no authentication. There's no SPF alignment, no DKIM signing, and the sending IP is your hosting server — which probably has poor email reputation. Switch to an authenticated SMTP provider.
How do I set up SMTP in Magento?
Install a Magento SMTP extension (Mageplaza SMTP, Magepal SMTP, or the built-in Adobe Commerce SMTP), then configure it with your ESP's SMTP credentials. Use port 587 with TLS. In Adobe Commerce 2.4+, SMTP configuration is available in Stores > Configuration > Advanced > System > Mail Sending Settings.
Which ESP is best for Magento transactional email?
SendGrid, Mailgun, or Amazon SES. All three offer Magento-compatible SMTP, dedicated IP options, and good transactional deliverability. SendGrid has the easiest Magento integration. Amazon SES is cheapest at scale. Mailgun has the best analytics.
Want this handled for you?
Free 30-minute strategy call. Walk away with a plan either way.