How to Migrate from SendGrid to Another Email Service
Migrating from SendGrid is straightforward if you follow the right order. This guide covers the complete process — from exporting your data to validating deliverability on the new service.
This guide uses Emitlo as the destination service. Sign up free — 12,000 emails/month, no credit card, setup in 10 minutes.
1. Before you start: export your SendGrid data
Before making any changes, export everything you need from SendGrid:
2. Set up your new email service
Sign up for Emitlo and add your sending domain. Emitlo generates DKIM keys and publishes DNS records automatically. Verification typically completes within 60 seconds.
Generate API credentials or SMTP settings. Keep these ready for the next steps.
3. Update DNS records
You'll need to update your DNS records to point to the new service. Emitlo provides the exact records to add. Key records to update:
- →DKIM CNAME or TXT records (replace SendGrid's with Emitlo's)
- →SPF TXT record (replace include:sendgrid.net with include:emitlo.com)
- →DMARC TXT record (update rua email if needed)
Important: Don't remove SendGrid's DNS records until you've fully switched over. Running both sets of records simultaneously is safe during the transition period.
4. Update your application code
Replace your SendGrid API calls with Emitlo's. The request format is similar:
// Before (SendGrid)
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY);
await sgMail.send({ to, from, subject, html });
// After (Emitlo REST API)
await fetch('https://api.emitlo.com/v1/messages', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.EMITLO_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ to, from: '[email protected]', subject, html }),
});
// After (Emitlo SMTP — drop-in replacement for Nodemailer)
const transporter = nodemailer.createTransport({
host: 'smtp.emitlo.com',
port: 587,
auth: { user: process.env.EMITLO_SMTP_USER, pass: process.env.EMITLO_SMTP_PASS },
}); 5. Migrate templates
Emitlo accepts standard HTML. Export your SendGrid Dynamic Templates as HTML and use them directly. If you're using Handlebars variables in SendGrid templates, replace them with your own templating logic (Mustache, Handlebars, or string interpolation) before sending to Emitlo.
6. Import suppressions
Import your SendGrid suppression list to Emitlo before switching traffic. This ensures you don't email addresses that have previously bounced or complained — which would damage your sender reputation on the new service.
7. Test and validate
Before switching all traffic:
- ☐Send test emails to your own addresses and verify they arrive in inbox
- ☐Check Emitlo's deliverability dashboard for authentication status
- ☐Verify DKIM signatures are valid (use MXToolbox)
- ☐Test all email types (password reset, order confirmation, etc.)
- ☐Verify webhooks are firing correctly
8. Switch over and monitor
For zero-downtime migration, use a gradual rollout:
- 1.Route 10% of traffic to Emitlo. Monitor for 24 hours.
- 2.Route 50% of traffic to Emitlo. Monitor for 24 hours.
- 3.Route 100% of traffic to Emitlo.
- 4.Monitor Emitlo's deliverability dashboard for 48 hours.
- 5.Remove SendGrid DNS records and cancel your SendGrid account.
9. Migration checklist
Migrate from SendGrid in under 2 hours
12,000 emails/month free (400/day) · Transparent pricing · EU hosting · Human support