Skip to content

Fix Odoo Mass Mailing Bouncing & Delivery Issues

DeployMonkey Team · March 23, 2026 8 min read

Mass Mailing Delivery Problems

Odoo Mass Mailing is powerful but email deliverability depends on proper configuration. High bounce rates, spam folder placement, and blacklisting can kill your email marketing. Here are the fixes for common delivery issues.

High Bounce Rate

# Causes of bouncing:
# 1. Invalid email addresses in contact list
# 2. Full mailboxes (soft bounce)
# 3. Domain doesn't exist (hard bounce)
# 4. Recipient server rejecting sender
# 5. Email too large (attachments)

# Fix 1: Clean your contact list
# Mass Mailing → Contacts → filter by bounce count
# Remove contacts with bounce > 2
# SQL to find high-bounce contacts:
SELECT email, message_bounce
FROM mailing_contact
WHERE message_bounce > 0
ORDER BY message_bounce DESC;

# Fix 2: Use double opt-in
# Require email confirmation before adding to list
# Reduces invalid addresses significantly

# Fix 3: Remove role-based addresses
# info@, admin@, support@ often bounce or trigger spam
# Filter out generic addresses

SPF Configuration

# SPF (Sender Policy Framework) tells receivers
# which servers can send email for your domain

# DNS TXT record for your domain:
# Type: TXT
# Name: @
# Value: v=spf1 include:_spf.odoo.com a mx ~all

# If using custom SMTP:
# v=spf1 include:_spf.google.com include:sendgrid.net a mx ~all

# Verify SPF:
# dig TXT yourdomain.com
# Or: mxtoolbox.com/spf.aspx

# Common mistake: multiple SPF records
# Only ONE SPF record allowed per domain
# Merge all includes into single record

DKIM Setup

# DKIM (DomainKeys Identified Mail) signs emails
# to prove they weren't tampered with

# If using Odoo.com SMTP: DKIM included
# If using custom SMTP, configure DKIM:

# 1. Generate DKIM keys on your mail server
# 2. Add DNS TXT record:
# Name: odoo._domainkey
# Value: v=DKIM1; k=rsa; p=MIIBIj...(public key)

# 3. Configure Odoo outgoing mail server
# to sign with DKIM private key

# Verify DKIM:
# Send test email, check headers for:
# DKIM-Signature: ... d=yourdomain.com

DMARC Policy

# DMARC aligns SPF + DKIM
# Required for inbox delivery in 2026

# DNS TXT record:
# Name: _dmarc
# Value: v=DMARC1; p=none; rua=mailto:[email protected]

# Policy levels:
# p=none     — monitor only (start here)
# p=quarantine — spam folder for failures
# p=reject   — reject failures entirely

# Progression:
# Week 1-4: p=none (collect reports)
# Week 5-8: p=quarantine (test impact)
# Week 9+: p=reject (full protection)

# Review DMARC reports for failures before tightening

Spam Folder Placement

# Emails land in spam? Check these:

# 1. Content issues:
# - Avoid ALL CAPS in subject line
# - Don't use excessive exclamation marks!!!
# - Avoid spam trigger words (FREE, BUY NOW, ACT NOW)
# - Include unsubscribe link (Odoo does this)
# - Text-to-image ratio: more text than images
# - Don't use URL shorteners

# 2. Technical issues:
# - SPF, DKIM, DMARC all passing
# - Consistent From: address
# - Valid Reply-To address
# - PTR record matches sending IP

# 3. Reputation issues:
# - Check sender reputation: senderscore.org
# - Check blacklists: mxtoolbox.com/blacklists.aspx
# - Warm up new sending domains gradually
# - Start with 50 emails/day, increase slowly

Odoo Blacklist Management

# Odoo maintains internal blacklist:
# Mass Mailing → Configuration → Blacklisted Contacts

# Contacts blacklisted when:
# - User clicks unsubscribe
# - Hard bounce detected
# - Manually added to blacklist

# Check blacklist:
SELECT email FROM mail_blacklist WHERE active = true;

# Remove from blacklist (if requested):
# Mass Mailing → Blacklisted Contacts
# Find email → Unblacklist

# Or via code:
env['mail.blacklist'].sudo()._remove('[email protected]')

DeployMonkey

DeployMonkey configures email delivery with proper SPF, DKIM, and DMARC for every Odoo instance. Maximize your mass mailing deliverability from day one.