Handling bounced email in EspoCRM campaigns

Bounced email in EspoCRM campaigns needs a deliberate design: how bounces are detected, where they are logged, when an address is marked invalid and how list hygiene protects your sender reputation.

On this page

How EspoCRM handles bounced email in campaigns

A marketing lead who sends a campaign and sees hard bounces needs to know two things before the next send: what EspoCRM records about each failed address, and whether the target list will keep mailing it. The campaign log is where delivery outcomes for a send appear, and target lists are where the audience is maintained, so those are the places to check first. The planning decision is whether your team will rely on EspoCRM's handling of bounced messages as it is configured, or add a review step on top of it. That choice determines who cleans lists, how often they do it, and what evidence sales or marketing leadership can see.

This page separates what the EspoCRM documentation describes from what you must confirm in your own version and mail setup. No bounce-specific figures were supplied for this topic, so this page gives no thresholds, retry counts or timing for when an address is marked invalid. Confirm every threshold and mechanic with your version's documentation and by testing a controlled list of addresses on a non-production instance. Also confirm how bounce notices reach EspoCRM, since that depends on the sending account, the mailbox that receives returned messages and how your sending domain is authenticated.

Bounce processing also depends on background jobs. The EspoCRM server configuration documentation states that cron or a scheduled task is required for background jobs, so updates to campaign results rely on that schedule running reliably. If the schedule stops or runs late, outcomes may appear after the send looks complete. Plan a check that compares the campaign log against the target list after each send, and add monitoring for the scheduled job. Agree on this check with your operations team before go-live so that someone owns it after launch.

Bounce handling options and when each fits

This table compares four ways to handle bounced email in EspoCRM campaigns, showing the effort each adds, who usually owns it and the risk it leaves open. Read each row against your own sending volume and staffing, and treat the built-in option as something to test in your instance before relying on it. Most teams combine two or more options.

OptionEffort it addsWho owns itRisk it leaves open
Built-in detection and invalid markingLow once confirmed, but needs a test send to a known-bad address and a check that the address is flaggedCRM administrator who configured mail and campaignsBounces may not reach EspoCRM if mailbox or return-path settings are wrong, so confirm this in your version first
Manual review of the campaign logRecurring review after each send, growing with list sizeCampaign ownerBounces found late or skipped, so the same bad addresses get mailed again in the next campaign
Pre-send list cleaning with exclusion lists or reportsUpfront work on every campaign, plus upkeep of the reports and exclusion listsMarketing operations, with the CRM administrator for report logicAddresses that go bad between sends stay on the list until the next clean, and exclusions only cover what someone has added
Routing bounces to a monitored group mailboxGroup account setup, a named monitoring owner and a routine for acting on each messageOwner of the shared mailbox, often operations or ITAn unwatched mailbox means bounces go unactioned, and the notice format from your sending provider may not parse cleanly
Checking the sending provider's own suppression dataPeriodic comparison between provider records and EspoCRM, if the provider offers itEmail platform administratorTwo sources can disagree, and the provider may not hold the same records EspoCRM does, so confirm what it keeps

Hard bounces, soft bounces and complaints need different rules

Permanent failures, often called hard bounces, mean the receiving server rejected the address for good, usually because the mailbox does not exist or the domain no longer receives mail. The usual intended treatment is to suppress the address from future sends, record the reason, and flag the contact or lead for review.

  • Unknown mailbox: mark the address invalid on the record and remove it from active target lists so later campaigns skip it.
  • Invalid domain: review the domain before acting on it, since a single failed domain may reflect a data entry problem rather than a closed company.
  • Bounce reason: keep the failure text and date on the record so that the reason is visible to the next person who edits the contact.
  • Re-import risk: a CSV import that updates existing records could overwrite a suppression flag, so confirm which fields an import can change.

Confirm with the vendor docs and a test send to a known-bad address which of these steps EspoCRM performs automatically and which need a manual action.

Why list hygiene shapes sender reputation

Repeated sends to invalid addresses damage the reputation of the sending domain and IP address at receiving providers. When a campaign from EspoCRM hits many addresses that no longer exist or never did, the receiving servers see a pattern: the sender is not maintaining its audience. Mailbox providers use bounce rates as one signal when they decide whether to deliver, filter or reject future messages from that domain and sending address. Each campaign that repeats the same bad addresses adds to that signal, so the damage grows with every send. The exact thresholds are set by each provider and change over time, so ask your mail provider and your deliverability specialist for current requirements before you set any internal limit.

Complaints usually weigh more heavily than bounces. A recipient who marks a message as spam tells the provider that the mail was unwanted, and that signal can affect delivery for the whole domain, not just one address. Invalid addresses often generate both problems, because stale lists tend to contain people who have left an organization or no longer recognize the sender. In EspoCRM, the bounce record for an address is only useful if the team acts on it. Confirm with your provider whether complaint feedback loops are available for your sending setup, and decide who receives those reports and how quickly they are reviewed.

A suppression process keeps the CRM list usable for later campaigns. The practical goal is that an address which has bounced is recorded, marked as invalid on the contact or lead, and excluded from future target lists by default, so it does not return to a campaign by accident. Record the rule in your campaign procedure: who reviews the bounce log, which bounce types lead to suppression, and when an address may be restored after the owner corrects it. Without this step, target lists grow stale, every new campaign inherits old failures, and the sending reputation you rely on for newsletters and transactional mail erodes over time.

Setting up bounce detection and invalid-address handling

This sequence confirms that bounces reach a place someone reviews, that background jobs can process them, and that addresses flagged as invalid stay out of later sends. The result is a documented, tested loop between sending, bounce review and the target lists.

  1. Confirm the sending account and SMTP settings

    The administrator opens the outbound email account used for campaigns and checks the SMTP host, port, encryption, sender address and authentication against the mail provider's current documentation. Send a single test message to an internal mailbox from the account to confirm it leaves the server without errors. Done means the test message arrives with the expected sender name and address, and the campaign's sending account is recorded in your runbook.

  2. Decide where bounces return

    Choose the path bounce notices take: a monitored group mailbox, such as a shared operations address that is linked to EspoCRM, or a scheduled review of the campaign log by a named person. Ask your mail provider whether bounce notices go to the envelope sender (return path) and whether that address can be routed to a mailbox your team reads. Done means you can point to one address or one review step that every bounce is expected to reach, written down with its owner.

  3. Confirm background jobs run on schedule

    Ask the administrator to confirm that cron or the scheduled task runner executes the EspoCRM jobs on the server, as the server configuration documentation requires for background processing. Check that the job runner is active and that jobs complete without errors in the application logs. Done means a scheduled job runs on its expected interval and the output is visible in the logs, so bounce processing and sending both have a reliable trigger.

  4. Run a controlled test send to seeded addresses

    Create a small target list of internal and test addresses, including at least one deliberately invalid address on a domain you control or a mailbox you know will reject mail. Send a test campaign from the configured account using a template that identifies it as a test. Done means the list contains a known set of deliverable and undeliverable recipients, and the send has been recorded in the campaign log before you move on to the next step.

  5. Check the campaign log and address records

    After the test send and the scheduled processing window have passed, review the campaign log for the sent, failed and bounced entries. Open the record for the invalid address and confirm whether it was marked invalid or flagged, and whether the bounce reason was captured. Done means you can show, for each seeded address, what was sent, what bounced and which record now carries the invalid status.

  6. Confirm the target list excludes flagged addresses

    Rebuild or reuse the same target list and run a second test send to the seeded set. Confirm that the invalid address is excluded from the recipient count and does not appear in the send log. Done means the flagged address was skipped on the next send, and the recipient count matches the number of deliverable seeded addresses.

  7. Document the owner and review cadence

    Write a short runbook entry that names the owner of bounce review, the mailbox or log used, the escalation path for a sudden rise in bounces, and the review cadence your organization chooses. Include the sending account, the cron or scheduled task dependency and the test addresses used. Done means the runbook is approved by the campaign owner and the administrator, and the next scheduled review is on a calendar.

Questions teams ask before handling bounces in EspoCRM

What drives the effort of bounce handling in EspoCRM?

The main drivers are how many mailboxes and sending accounts you run, how many campaigns go out each month, and how much your lists already contain bad addresses. Effort also grows with the number of rules you need for different bounce types, such as hard bounces versus temporary delays, and with how many people must review invalid addresses before they are suppressed. Ask any partner to split the quote into configuration of detection and logging, rules for marking addresses invalid, testing with real bounce messages from your provider, and handover to your operations staff. Each of these items should be listed separately so you can see what is one-time work and what your team maintains afterwards.

Can our team configure bounce handling in EspoCRM alone?

A technically capable administrator can often configure the basic settings, but the outcome depends on how your mail flows are set up. Bounce messages reach EspoCRM only through the mailboxes and sending accounts you have connected, so a team without experience of IMAP, SMTP and mail server logs may spend time on problems that are not visible inside the CRM. Confirm internally who owns the mail accounts, who can read bounce messages and who will review suppressed addresses each week. If those roles are unclear, a short scoped engagement to design the process and test it is usually easier than trial and error in live campaigns.

What does bounce handling need from our mail provider and IT team?

Bounce handling depends on your mail provider delivering the right information back to your sending systems. Your IT team should confirm which account sends campaign mail, which mailbox receives bounce notifications, and whether the provider uses return-path or bounce-address settings that EspoCRM can read. Ask your provider which sender authentication records are in place for your domain and who can change them. Your IT team also needs to approve outbound sending limits and any firewall or DNS changes. Write these requirements down before the build starts, because changing a sending domain or provider later affects every list and template.

How long does a bounce handling setup usually take?

The duration depends on the number of sending accounts, the state of your current lists, and how quickly your provider and IT team can respond to requests. A single sending account with clean lists is a much smaller task than several regional accounts with years of unmanaged contacts. Ask for a timeline in the written scope that separates discovery, configuration, test sends against your provider, and a review period. Fixed-scope engagements agree deliverables and dates before work starts, so you can check whether the plan depends on items you control, such as access approvals or DNS changes.

Does personal data in bounce messages need special care?

Yes. Bounce messages often contain the original recipient address, the subject line and sometimes parts of the message body, so they are personal data in most privacy regimes. Decide how long bounce messages are kept, who can read them, and whether they are stored as emails linked to contact records or only as summarized status fields. Limit access through EspoCRM roles and teams, and confirm with your privacy or legal team which retention period applies. Review the security guidance in EspoCRM's documentation on access control and restrict admin accounts that can view raw mail.

How do cron and background jobs affect bounce results?

Bounce processing in EspoCRM depends on scheduled jobs running on the server. EspoCRM's server configuration requires cron or a scheduled task for background jobs, so if cron is misconfigured or stopped, bounce messages may sit unprocessed while campaigns continue to send. This can result in repeated attempts to invalid addresses and a worse sender reputation. Check that the scheduled job runs on the schedule you expect, that failures are logged, and that someone receives an alert when the queue stops. Include cron monitoring in the operations runbook so the team knows what to check first when campaign results look wrong.

When should we bring in a partner for bounce handling?

Consider a partner when campaigns are business-critical, when several sending accounts or providers are involved, or when your team cannot test bounce detection without disrupting live sends. A partner is also useful when the setup must pass a review by your security or compliance function, since the documentation, test evidence and handover need to be clear. Ask any provider for a written scope, a list of deliverables, the testing approach, and what your team must do after handover, including who reviews suppressed addresses. Keep in mind that DeployOpen prepares systems and evidence for compliance assessments but does not issue audit reports or certifications.

Protecting personal data and access in bounce records

Bounce records look harmless, but they carry recipient addresses, message content and campaign history. The controls below decide who can see that data, how long it stays, and whether it leaves the system as an export. Treat the bounce log, target lists and the mail account as one data set when you set roles, teams and retention.

Restrict campaign logs and target lists

A bounce entry can show the recipient address, the campaign name and the returned message text, which may quote the original email. Limit who can read campaign logs and target lists through roles and teams, so that marketing users see only the campaigns and audiences they own. Check the effective permissions with a test user from each team before the first live send, because a broad read permission on one entity exposes the related bounce data.

Keep admin accounts out of daily review

Reviewing bounces is routine work and does not need administrator rights. Assign a dedicated role that can read campaign results and mark addresses, and keep administrator accounts for configuration and recovery only. The EspoCRM security guidance recommends avoiding admin accounts for daily work, so a compromised workstation session does not expose system-wide settings or mail credentials.

Apply the password and session policy

Bounce review happens inside the CRM session, often on laptops that leave the office. Apply the password policy, require two-factor authentication where your identity setup allows it, and set a limited auth token lifetime so an idle session does not stay open. Confirm with your identity team how two-factor authentication interacts with OIDC sign-in, since EspoCRM's own 2FA is not compatible with OIDC.

Keep mail credentials out of shared notes

Bounce handling depends on a mail account that the CRM uses to receive returned messages, and its password or token must not be copied into runbooks, tickets or shared spreadsheets. Store the credentials only in the EspoCRM mail account settings, limit who can open those settings, and rotate the credential through the same settings page. Ask your team where existing copies live before go-live, since old notes are a common source of exposure.

Plan retention for bounce logs

Bounce logs accumulate with every campaign and may outlive the business reason for keeping them. Decide how long returned-message records stay in the CRM, who approves deletion, and how deletions are recorded for your privacy obligations. Confirm with your compliance lead whether bounce history must be kept for suppression purposes, and document the retention rule before the first campaign so it is applied consistently.

Control exports of invalid addresses

A filtered list of invalid addresses is useful for cleanup but is also a personal data set that can leave the CRM in a spreadsheet. Decide which roles can export lists and campaign results, and whether exports are logged. Confirm with your administrator how the export permission is set for each role, and make sure a list of invalid addresses is treated with the same handling rules as the live audience it came from.

How DeployOpen scopes and delivers EspoCRM email setup

DeployOpen starts from your campaign volumes, sending accounts and list sources, then agrees in writing how bounce detection, invalid-address handling and sender reputation checks will work in your EspoCRM instance. The build runs in infrastructure you control, and the handover leaves your team with settings, runbooks and a support path they can use without us.

How we scope

  • Inventory every sending account, campaign type and target list that will receive bounce handling changes.
  • Confirm with your mail provider which bounce and complaint notifications it can return to EspoCRM.
  • Agree in writing which addresses are marked invalid, who may reactivate them and how exceptions are approved.

How we build

  • Configure and test bounce capture on a staging instance using sample bounced messages before any live send.
  • Check that the EspoCRM cron job or scheduled task runs reliably, since background processing depends on it.
  • Test list cleanup and campaign exclusion rules against representative target lists before production use.

How we hand over

  • Document each bounce setting, the fields used to flag invalid addresses and the expected log entries.
  • Provide a short runbook for reviewing bounce logs, reactivating addresses and escalating sender reputation issues.
  • Walk your campaign and operations staff through the workflow and record the acceptance tests that passed.

How we support

  • Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.
  • Ongoing support, upgrades and continuous testing are available as a retainer after handover.
  • Ask us to confirm which deliverables cover changes to your provider settings or EspoCRM version upgrades.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.