DemandLoop DemandLoop | Help Center

Emails Not Delivering

Troubleshoot email delivery issues, spam problems, and ensure back-in-stock notifications reach customers

If customers aren't receiving back-in-stock notification emails, follow this systematic guide to diagnose and fix delivery issues.

What you'll accomplish

  • Diagnose why notification emails are not being delivered
  • Fix queue, authentication, spam, and bounce issues
  • Verify email delivery with test sends and log analysis
  • Prevent future deliverability problems with monitoring best practices

Quick Diagnostic Questions

Answer these to narrow down the problem:

1. Are ANY emails being delivered? (Some vs None)
2. Are emails going to spam/junk folders?
3. Do test emails work?
4. Is the queue paused or active?
5. Are emails showing as "sent" in Dashboard?

Based on answers, jump to relevant section below.


Check Email Delivery Status

Dashboard → Notifications → History

Step 1: View recent sends

Dashboard → Notifications → History tab
→ Shows last 100 email notifications

Step 2: Check status column

Successful delivery:

Status: DeliveredSent: 2 minutes ago
Customer: [email protected]
Product: Nike Shoes - Size 10

Failed delivery:

Status: FailedError: Invalid email address
Sent: 5 minutes ago
Customer: invalid@@email

Pending/queued:

Status: QueuedPosition: 23 in queue
Expected: 45 minutes

Understanding Status Types

"Delivered"

  • Email successfully sent to recipient's mail server
  • Does NOT guarantee inbox delivery
  • May still land in spam folder

"Failed"

  • Email rejected by recipient's server
  • Common reasons: Invalid address, blocked domain
  • Customer won't receive notification

"Bounced"

  • Email returned by recipient's server
  • Soft bounce: Temporary issue (mailbox full)
  • Hard bounce: Permanent failure (email doesn't exist)

"Queued"

  • Waiting to send (Fair Queue batching)
  • Normal status, will send soon
  • Check queue settings if too slow

Problem 1: No Emails Sending At All

Check Queue Status

Dashboard → Notifications → Queue Status

Normal status:

Queue: ActivePending notifications: 23
Next batch: 15 minutes

Paused queue:

Queue: PausedReason: Manual pause
Pending: 47 notifications waiting
Action: Resume queue

Issue: Queue manually paused

Fix:

Dashboard → Notifications → Queue Status
→ Click "Resume Queue"
→ Notifications start sending immediately

Issue: Free plan limit reached

Fix:

Dashboard → Overview
→ Check: "Email notifications: 500/500"
→ Options:
  1. Wait until next month (resets 1st)
  2. Upgrade to Growth (unlimited)

See Plan Limits & Upgrades for details.

Check Email Service Integration

Dashboard → Settings → Email Integration

Healthy status:

Email provider: Resend
Status: ConnectedLast test: 2 hours ago
Success rate: 98.7%

Connection issue:

Email provider: Resend
Status: DisconnectedLast successful send: 3 days ago
Action needed: Reconnect service

If disconnected:

1. Click "Reconnect email service"
2. Authorize Resend connection
3. Send test email
4. Verify test arrives

Check System Health

Dashboard → Settings → Health Checks

Look for warnings:

Email service health:

Resend API: Operational
DNS records: Valid
Sending quota: 95% available
Bounce rate: 2.1% (normal)

Red flags:

Resend API: Rate limit exceeded
DNS records: SPF missing
Sending quota: 0% available
Bounce rate: 45% (critical)

If API rate limited:

  • Temporary service slowdown
  • Emails queued, will send when quota resets
  • Usually resolves within 1 hour
  • Contact support if persists > 24 hours

Problem 2: Emails Going to Spam

Why Emails Land in Spam

Common causes:

1. Domain reputation issues

  • New domain (no sending history)
  • Previous spam complaints
  • Low engagement rates

2. Missing authentication

  • SPF record not configured
  • DKIM signature missing
  • DMARC policy absent

3. Content triggers

  • Spammy subject lines
  • Too many links
  • ALL CAPS text
  • Excessive punctuation!!!

4. Recipient behavior

  • Customer marked previous email as spam
  • Low email engagement historically
  • Inactive email address

Check Email Authentication

Dashboard → Settings → Email Authentication

Properly configured:

SPF Record: Valid
DKIM Signature: Signing emails
DMARC Policy: Configured
Domain: demandloop.metigro.io
Status: All checks passing

Configuration issues:

SPF Record: Not found
DKIM Signature: Not verified
DMARC Policy: Missing
Action: Configure DNS records

Configure DNS Records (Advanced)

If you have custom domain (custom-domain.com):

Step 1: Get DNS records

Dashboard → Settings → Email Authentication
→ Click "Setup custom domain"
→ Copy provided DNS records

Step 2: Add to DNS provider

SPF Record:

Type: TXT
Host: @
Value: v=spf1 include:resend.com ~all
TTL: 3600

DKIM Record:

Type: TXT
Host: resend._domainkey
Value: [provided by DemandLoop]
TTL: 3600

DMARC Record:

Type: TXT
Host: _dmarc
Value: v=DMARC1; p=none; rua=mailto:[email protected]
TTL: 3600

Step 3: Verify in Dashboard

Dashboard → Settings → Email Authentication
→ Click "Verify DNS records"
→ Wait 24-48 hours for propagation
→ Should show all```

**Note:** DNS changes can take 24-48 hours to propagate globally.

### Improve Email Content

**Subject line best practices:**

**Good examples:**

"Nike Air Max - Back in Stock!" "Your requested item is available" "Size 10 restocked - order now"


**Spam-triggering examples:**

"BUY NOW!!! HURRY!!!" "FREE SHIPPING - CLICK HERE" "You won a prize! Open immediately!"


**Customize in Dashboard:**

Dashboard → Settings → Email Templates → Edit subject line → Avoid: ALL CAPS, excessive !!!, "free", "buy now" → Use: Product name, simple call-to-action


### Test Spam Score

**Use mail-tester.com:**

**Step 1: Send test email**

Dashboard → Settings → Email Testing → Click "Send test email" → Enter: [email protected]


**Step 2: Check score**

Visit: https://www.mail-tester.com → View your score (aim for 8+/10) → Read specific recommendations → Fix flagged issues


**Common issues flagged:**
- Missing authentication records
- Poor sender reputation
- Spammy content detected
- Broken links
- Image-heavy email

---

## Problem 3: Emails Delayed

### Check Fair Queue Settings

**Dashboard → Settings → Fair Queue**

**Current settings:**

Batch size: 50 emails Batch delay: 2 hours Rate: ~25 emails/hour


**If delays too long:**

**Increase send rate:**

Batch size: 100 emails (from 50) Batch delay: 1 hour (from 2 hours) New rate: ~100 emails/hour


**Trade-off:**
- Faster sending = less "fair" (first subscribers notified first)
- Slower sending = more "fair" (everyone gets chance)

See [Fair Queue Settings](/help-center/notifications/fair-queue) for strategy.

### Check Email Queue

**Dashboard → Notifications → Queue Status**

**Heavy backlog:**

Pending notifications: 347 Current position: 147 in queue Estimated wait: 6 hours


**If backlog too large:**

**Option 1: Increase send rate**
- Adjust Fair Queue settings (above)
- Temporarily increase batch size
- Reset to normal after catching up

**Option 2: Upgrade plan**
- Growth plan has higher sending capacity
- No artificial delays
- Faster infrastructure

**Option 3: Prioritize products**

Dashboard → Settings → Product Priorities → Disable notifications for low-priority items → Focus on high-value products → Reduces queue size


---

## Problem 4: Specific Email Addresses Failing

### Check Bounce List

**Dashboard → Notifications → Bounced Emails**

**Hard bounces (permanent):**

Email: [email protected] (should be gmail) Reason: Domain doesn't exist Status: Permanently failed Action: Customer must resubscribe with correct email


**Soft bounces (temporary):**

Email: [email protected] Reason: Mailbox full Status: Will retry 3 times Action: Wait for retry or customer clears inbox


### Retry Failed Emails

**Soft bounces retry automatically:**

Attempt 1: Failed (mailbox full) Wait: 1 hour Attempt 2: Failed (still full) Wait: 6 hours Attempt 3: Success```

Manual retry:

Dashboard → Notifications → History
→ Find failed email
→ Click "Retry"
→ Attempts immediate resend

Unsubscribed Emails

Check unsubscribe list:

Dashboard → Subscriptions → Unsubscribed
→ Search customer email

If customer unsubscribed:

  • Emails won't send (legal requirement)
  • Customer must resubscribe via widget
  • Can't manually re-add them

If wrongly unsubscribed:

1. Verify customer wants emails
2. Ask customer to resubscribe via website
3. Or Dashboard → Subscriptions → Reactivate
   (only with customer's explicit consent)

Problem 5: Emails Delivered But Not Received

Common Recipient Issues

1. Spam/junk folder

Ask customer to check:

Gmail: Check "Spam" folder
Outlook: Check "Junk Email" folder
Yahoo: Check "Bulk" folder
Apple Mail: Check "Junk" mailbox

If found in spam:

1. Customer marks as "Not Spam"
2. Adds sender to contacts/safe list
3. Future emails deliver to inbox```

**2. Email filters/rules**

Some customers have filters that auto-delete/move emails.

**Ask customer to check:**

Email settings → Filters/Rules → Look for rules moving "no-reply@" emails → Disable or adjust filter → Add exception for demandloop domain


**3. Aggressive corporate filters**

Enterprise email systems (Microsoft Exchange, Google Workspace) may block external notifications.

**Solutions:**
- Customer asks IT to whitelist demandloop.metigro.io
- Customer uses personal email instead
- Customer checks quarantined emails

**4. Email forwarding issues**

If customer forwards notifications to another address:
- Original may get filtered
- Forwarded email may lose formatting
- Tracking may break

**Fix:**
- Subscribe with final email directly
- Don't rely on forwarding

---

## Testing Email Delivery

### Send Test Email

**Dashboard → Settings → Email Testing**

**Step 1: Enter test email**

Your email: [email protected] → Click "Send Test Notification"


**Step 2: Check inbox (within 1 minute)**

**What to verify:**
- Email arrives in inbox (not spam)
- Subject line renders correctly
- Product link works
- Unsubscribe link works
- Images load (if any)

**Step 3: Test multiple providers**

Send tests to:
  • Gmail account
  • Outlook account
  • Yahoo account
  • Corporate email (if applicable)

Different providers have different spam filters.

### Check Email Logs

**Dashboard → Settings → Email Logs**

**Detailed delivery timeline:**

12:00:00 - Email queued 12:00:15 - Sent to Resend API 12:00:18 - Accepted by API 12:00:22 - Delivered to recipient server 12:00:25 - Inbox placement confirmed```

Look for errors:

12:00:00 - Email queued
12:00:15 - Sent to Resend API
12:00:18 - Rejected by APIError: "Recipient email blocked due to previous bounces"

Email Provider Issues

Resend API Status

Check service status:

Visit: https://status.resend.com
→ All systems operational```

**If Resend has issues:**
- Emails automatically queued
- Will retry when service restored
- No action needed on your end

**Dashboard shows:**

Email service degraded Notifications queued for later delivery Estimated resolution: 2 hours


### Rate Limits

**Free tier limits (rare issue):**

Resend free tier: 100 emails/day If exceeded: Emails queue until next day Upgrade: Growth plan uses paid Resend tier


**Check current usage:**

Dashboard → Settings → Email Quota → Shows: 87/100 emails today → Resets: Tomorrow at midnight UTC


**If hitting limit:**
- Upgrade to Growth (unlimited)
- Or spread notifications across multiple days
- Or adjust Fair Queue to send slower

---

## Advanced Diagnostics

### Email Headers Analysis

**For technical users:**

**Step 1: Get email source**

Gmail: Open email → Three dots → "Show original" Outlook: Open email → File → Properties Yahoo: Open email → More → "View raw message"


**Step 2: Check SPF/DKIM results**

**Look for:**

Authentication-Results: spf=pass; dkim=pass; dmarc=pass```

Issues:

Authentication-Results: spf=fail→ SPF record not configured or incorrect
Authentication-Results: dkim=neutral→ DKIM signature missing or invalid

Step 3: Check delivery path

Received: headers show email journey
→ From: demandloop.metigro.io
→ Through: resend.com
→ To: recipient's mail server
→ Each hop should be < 1 second

Long delays indicate:

  • Greylisting (recipient server delaying)
  • Spam analysis in progress
  • Server issues

SMTP Responses

Email logs show SMTP codes:

Success codes:

250 OK - Message accepted```

**Temporary failures:**

421 - Service not available (try again later) 450 - Mailbox unavailable (mailbox full) 451 - Server error (temporary issue)


**Permanent failures:**

550 - Mailbox not found (email doesn't exist) 551 - User not local (forwarding failed) 554 - Message rejected (spam/policy violation)


**If seeing persistent 5xx errors:**
- Contact support with SMTP logs
- May indicate domain blacklist
- Requires investigation

---

## Common Scenarios & Solutions

### Scenario 1: Worked Before, Stopped Now

**Likely causes:**
- Queue manually paused
- Email service disconnected
- DNS records expired
- Plan limit reached

**Fix:**
  1. Check queue status (Dashboard → Notifications)
  2. Verify email integration (Dashboard → Settings)
  3. Check DNS records (Dashboard → Email Auth)
  4. Review usage limits (Dashboard → Overview)

### Scenario 2: Some Customers Get Emails, Others Don't

**Likely causes:**
- Email provider differences (Gmail works, Yahoo doesn't)
- Some customers' addresses bouncing
- Spam filter variance

**Fix:**
  1. Check bounce list for failing addresses
  2. Send test to failing provider type
  3. Improve email authentication
  4. Review spam score (mail-tester.com)

### Scenario 3: Test Emails Work, Real Ones Don't

**Likely causes:**
- Queue settings prevent real emails
- Test emails bypass queue
- Fair Queue delay too long

**Fix:**
  1. Check Fair Queue settings
  2. Reduce batch delay
  3. Verify queue not paused
  4. Check pending notifications count

### Scenario 4: Emails Arrive Hours Late

**Expected behavior:**
- Fair Queue intentionally delays emails
- Ensures fair distribution
- Not a bug, it's a feature

**If too slow:**

Dashboard → Settings → Fair Queue → Reduce batch delay (2 hours → 30 minutes) → Increase batch size (50 → 100) → Faster delivery (less fair)


See [Fair Queue Settings](/help-center/notifications/fair-queue) for strategy.

---

## Prevention Tips

### Regular Monitoring

**Weekly checks:**

□ Review email delivery rate (Dashboard → Analytics) □ Check bounce rate (aim for < 5%) □ Monitor spam complaints (aim for < 0.1%) □ Verify queue not backed up


**Monthly maintenance:**

□ Clean bounce list (remove old hard bounces) □ Review email template performance □ Check DNS records still valid □ Test across major email providers


### Best Practices

**1. Keep email list clean**
  • Remove persistent hard bounces
  • Don't import old/stale email lists
  • Only collect opt-in subscriptions

**2. Maintain sender reputation**
  • Keep spam complaints low
  • Respond to unsubscribes quickly
  • Never send to purchased lists
  • Honor opt-outs immediately

**3. Monitor metrics**

Dashboard → Analytics → Email Performance → Track:

  • Delivery rate (aim for > 95%)
  • Open rate (aim for > 20%)
  • Click rate (aim for > 5%)
  • Bounce rate (aim for < 5%)

**4. Test before major changes**

Before changing:

  • Email templates
  • DNS settings
  • Domain configurations → Send tests to multiple providers → Verify delivery before going live

---

## When to Contact Support

Contact [email protected] if:

**1. Widespread delivery failure**
- No emails delivering for > 6 hours
- All recipients affected
- Queue active but nothing sending

**2. Persistent authentication issues**
- DNS records configured correctly
- Still failing SPF/DKIM checks
- 48+ hours since DNS changes

**3. Unexpected bounces**
- Valid emails bouncing
- Same customer email bounced 3+ times
- Bounce reason unclear

**4. Service integration broken**
- Can't reconnect email service
- API errors persisting > 24 hours
- Health checks showing ongoing issues

**5. Spam problem not resolving**
- Followed all spam fixes
- Still landing in spam folder
- Mail-tester score < 5/10

### Information to Include

Shop domain Example email addresses affected Email delivery logs (Dashboard → Logs) Screenshots of errors When issue started Recent changes (DNS, templates, settings) Test email results


---

## Additional Resources

- **Email templates guide:** [Customizing Email Templates](/help-center/notifications/email-templates)
- **Fair Queue explained:** [Fair Queue Settings](/help-center/notifications/fair-queue)
- **Notification flow:** [How Notifications Work](/help-center/notifications/how-notifications-work)

**Still experiencing issues?**

Email [email protected] with:
- Detailed description
- Affected customer emails
- Delivery logs/screenshots

We'll diagnose and resolve within 24 hours.