Fix ActiveCampaign emails going to spam

When ActiveCampaign campaigns land in spam, the platform's defaults are usually the cause: mail signed by acems1.com instead of your domain, a Spam Check that only reads content, and automations that keep mailing contacts who quit engaging. This guide covers the sending domain setup that fixes DMARC alignment, what ActiveCampaign's built-in tests do and do not prove, and how to verify a real campaign send with Unspam. The single highest-leverage fix: authenticate your sending domain under Settings > Advanced.

Why ActiveCampaign emails land in spam.

01

Your DKIM and Return-Path still say acems1.com

Until you set up a sending domain, ActiveCampaign signs every campaign with its own domain, something like acems1.com, and routes bounces through an ActiveCampaign-owned Return-Path domain. SPF and DKIM both pass, but neither aligns with your From domain, and Gmail shows "via acems1.com" next to your sender name. Since the February 2024 Google and Yahoo rules, bulk senders need DMARC-aligned mail, and unaligned sends build reputation for ActiveCampaign's domain instead of yours. Set up your sending domain under Settings > Advanced; once DKIM signs with your domain, the via label disappears.

02

You trusted Spam Check as a deliverability test

ActiveCampaign runs its built-in Spam Check on every campaign and automation email, and the green Passed checkmark is reassuring. But Spam Check is SpamAssassin scanning your content against a default ruleset: it knows nothing about your domain reputation, your authentication, or your list, and ActiveCampaign's own docs note that major providers like Gmail, Microsoft, and Yahoo barely use SpamAssassin. Passing it proves your copy avoids old spam phrases, nothing more. Placement only shows up when you test a real send against actual inboxes.

03

ActiveCampaign rewrote your From address because the domain is not authenticated

Since February 1, 2024, campaigns from an @gmail.com From address go out with a substitute address ActiveCampaign owns, with replies forwarded to you, and Yahoo From addresses mostly bounce because of Yahoo's strict DMARC policy. ActiveCampaign is also rolling out the same substitution for unauthenticated custom domains on accounts under 5,000 contacts: your From becomes something like myname.my-domain.com.1@12345.emcampaign.com. Mail keeps flowing, but every send builds reputation for emcampaign.com instead of your domain. Authenticate your real domain and the substitution stops.

04

Automations keep hammering contacts who quit engaging

ActiveCampaign never suppresses unengaged contacts for you, and there is no account-level frequency cap: a contact sitting in three active automations gets email from all three, and date-based triggers re-enter them on schedule. Those recipients are the ones who file complaints or decay into spam traps. Build the engagement automations ActiveCampaign itself recommends: a Last Engaged Date field updated on every open and click, an unsubscribe pass for contacts with no engagement 90 days after creation, and a six-month sunset off the last engaged date. Send one win-back, not a series; ActiveCampaign's docs warn that every extra win-back erodes sender reputation.

05

You inherit ActiveCampaign's shared IP pools

Almost every account sends from shared IP pools that ActiveCampaign's deliverability team balances and monitors, so another customer's bad list can briefly drag on you, and Google Postmaster Tools data mixes you with the pool. You cannot buy your way out at typical volume: a dedicated IP costs $750 and ActiveCampaign requires at least 100,000 active, engaged contacts before granting one, because smaller senders perform worse alone. The lever you actually control is domain reputation, which is exactly why the sending domain setup and list hygiene matter more than the IP.

06

Every link routes through ActiveCampaign's tracking redirect

Link tracking is on by default for all direct and automated campaigns, so every URL is rewritten through an ActiveCampaign tracking link before it reaches your contact. A custom domain that masks the tracker (a CNAME pointing at youraccount.activehosted.com) is an Enterprise feature, so on lower plans the redirect domain never matches your From domain. That mismatch plays no part in DMARC, but it is one more shared-reputation signal in every message. If a strict B2B segment is the problem, you can turn link tracking off per campaign under Options on the Campaign Summary page, at the cost of click reporting.

How ActiveCampaign authenticates your mail.

ActiveCampaign bundles DKIM, the SPF Return-Path (Mailserver Domain), and DMARC into one sending domain setup on the Advanced Settings page, and accounts created since July 29, 2020 cannot send anything until the domain is at least verified. Authenticated is the state to reach: verified alone still leaves you on acems1.com signatures.

record default the problem the fix
DKIM ActiveCampaign DKIM-signs campaigns with its own domain, something like acems1.com, which is why DKIM "works" on a brand-new account. The d= domain never matches your From domain, so nothing aligns for DMARC, Gmail shows a via label, and your own domain builds no reputation. Go to Settings (gear icon) > Advanced > Sending Domain. "Configure Domain" logs into your DNS provider and publishes everything for you; "Set up manually" emails a verification link, then shows the DNS table with records like acdkim1._domainkey.
SPF Bounces route through a Return-Path on an ActiveCampaign-owned domain, so SPF is evaluated against ActiveCampaign's domain and passes. SPF passes without alignment, which is why DMARC reports show SPF pass but alignment fail on default sends. The same sending domain setup creates the Mailserver Domain CNAME that moves the Return-Path onto your domain; it is self-service on any Marketing plan. Adding ActiveCampaign to your root SPF record changes nothing.
DMARC ActiveCampaign sends fine with no DMARC record on your domain, and nothing in the app forces you to publish one. Gmail and Yahoo have required DMARC on bulk senders' From domains since February 2024, and an enforcement policy without aligned DKIM sends your own campaigns to spam or bounces them. Publish v=DMARC1; p=none with an rua reporting address; the manual sending domain flow includes the DMARC record in its DNS table, and you tighten the policy once reports run clean.
Tracking domain Link tracking is on by default, so every URL in every campaign is rewritten through an ActiveCampaign-owned tracking redirect. The redirect domain never matches your From domain, and its reputation is shared with other ActiveCampaign senders. Enterprise accounts mask the tracker with a Custom Domain: create a CNAME (for example, email.yourbrand.com pointing to youraccount.activehosted.com), then save it under Settings > Domains. Other plans can only disable link tracking per campaign under Options.

Once you have updated these records, confirm they pass with Unspam's free SPF checker, DKIM checker, and DMARC checker.

How to test a ActiveCampaign campaign with Unspam.

ActiveCampaign's Send Test option is not a campaign send: personalization tags, conditional content, and link actions do not render, opens and clicks are not recorded, and a test where the From and To addresses share a domain often blocks itself. ActiveCampaign's docs even suggest whitelisting its mail server IP ranges to make tests arrive, which is exactly what your subscribers' filters will never do. The honest test is a real campaign send to seed addresses.

  1. 01

    Get your Unspam seed address

    Start a spam test or inbox placement test in Unspam and copy the test address it generates. Placement tests include seed addresses across Gmail, Outlook, Yahoo, Zoho, ProtonMail and AOL.

  2. 02

    Create a seed list in ActiveCampaign

    Go to Contacts > Lists and add a new list named something like Deliverability seeds. Then add the Unspam address as a contact, through Contacts > Import or manually, and subscribe it to the seed list.

  3. 03

    Duplicate the real campaign and point it at the seed list

    On the Campaigns overview page, click the down caret on the campaign you are debugging, click "Duplicate," then "Continue." On the Campaign Summary page, select only the seed list as the recipient. For automation emails, add the seed contacts to the automation with the bulk edit tool instead.

  4. 04

    Send it with Send Now, not Send Test

    A real send leaves through your sending domain with your live DKIM signature, the production Return-Path, and rewritten tracking links, exactly like a subscriber send. Send Test renders no personalization, records no engagement, and same-domain tests often block or land in spam.

  5. 05

    Read the results in Unspam

    Check the spam score, the SPF, DKIM, and DMARC verdicts on the live send (the DKIM domain should be yours, not acems1.com), placement per provider, client previews, and the eye-tracking heatmap. The AI fix assistant flags what to change; the free tier covers 10 spam tests and 3 inbox placement tests per month with no card.

The same test renders your campaign in 50+ real email clients, Gmail, Outlook, Apple Mail, iPhone, and Android among them, each in light and dark mode, via email client previews, so you confirm placement and rendering in one pass.

ActiveCampaign features that quietly affect delivery.

Spam Check cannot fail you, and passing it means little

Spam Check runs automatically on every campaign and automation email and shows its result on the Campaign Summary page, but it never blocks a send and only scores content against SpamAssassin's default rules. ActiveCampaign's own docs call the image-to-text ratio warning a suggestion that typically has no direct impact on deliverability. Treat it as a copy linter, not a verdict on placement.

Same-domain tests sabotage themselves

Send a test to an address on your own domain, or to the From address itself, and the message frequently blocks or lands in spam, which ActiveCampaign's docs acknowledge. Their suggested fix is whitelisting ActiveCampaign's IP ranges in your mail server, which makes your own inbox useless as a test environment. Seed addresses on providers you do not control give you the unrigged answer.

Trial and unverified accounts get test handcuffs

During a free trial, test emails can only go to the trial user's own address, and accounts created on or after July 29, 2020 must verify the sending domain before any test email leaves at all. The warning you see at send time is the same verification prompt. A real campaign send to a seed list has none of these quirks once the domain is verified, which is one more reason to test that way.

Email Client Preview is capped below Enterprise

ActiveCampaign's built-in Email Client Preview, powered by Litmus, renders your campaign across 30+ clients and devices, but Plus and Pro plans get five free previews per month; only Enterprise gets unlimited. The Desktop Preview is free but renders in your browser, not in real clients. Unspam's client previews run on the actual message from your seed send, so they reflect the production campaign rather than a draft.

What real ActiveCampaign senders run into.

The deliverability problems ActiveCampaign senders hit most often, each with the fix that resolves it.

Complaint rate ticked up and ActiveCampaign froze our whole account, no send button, no warning

ActiveCampaign auto-places an account under review the moment ISPs report a higher-than-normal spam complaint or bounce rate, and while under review you cannot send anything, campaigns or automations. The freeze is platform-wide, not per campaign, and the trigger sits around the 0.1% complaint line.

The fix Watch the per-campaign spam complaint rate in the Campaign Summary report and keep it under 0.1% (1 complaint per 1,000 sent), the rate ActiveCampaign calls acceptable. Because most providers, Gmail above all, do not report complaints back to the ESP, monitor your real Gmail complaint rate in Google Postmaster Tools too. Prevent the freeze with double opt-in forms, suppressing contacts with no engagement in 90 days, and never importing purchased or old lists. If you are already under review, answer every question in the compliance email immediately and show the exact list-cleaning you did; sending stays blocked account-wide until a human clears you, and an elevated complaint rate takes about 30 to 60 days to repair even after the freeze lifts.

Emails with images suddenly started hitting Gmail spam even though auth and reputation were clean

Users report image-only or image-heavy templates landing in Gmail spam while text-forward versions of the same send reach the inbox, with authentication, reputation, and complaint rate all clean. Gmail cannot read text baked into an image, so a mostly-graphic email reads as a classic image-spam pattern and gets filtered.

The fix Do not ship a single-image email, especially to B2B or cold segments. Rebuild the message with real, selectable HTML text carrying the core offer, aiming for a text-forward mix around 60:40 or 80:20 text-to-image; past roughly 40 percent image content, filters pay closer attention. Add descriptive alt text to every image and keep image files light. ActiveCampaign's Spam Check flags a skewed image-to-text ratio, but its own docs call that a suggestion with typically no direct impact, so treat it as a hint and confirm real placement with a seed send to inboxes you do not control.

New billing charges us for unsubscribed and bounced contacts, so cleaning the list feels like a penalty

For accounts created on or after November 3, 2025, ActiveCampaign counts every contact toward your billable tier, including unsubscribed, bounced, and unconfirmed, whereas older accounts were billed on active contacts only. The perverse effect is a temptation to leave dead and hard-bounced addresses in place, exactly the ones that drag reputation down and feed spam-trap and complaint problems.

The fix Do not solve the bill by leaving dead weight on your list. Clean before you import, since your first import sets the billing baseline: strip unsubscribes, hard bounces, and anyone with no engagement in a year. For contacts you must keep off the bill, use Archive rather than leaving them active; archived contacts are removed from sends and do not count toward your limit, but note the caps: a monthly archive limit (roughly your contact limit, resetting on your billing cycle), one-year storage before automatic deletion, and a 30-day freeze before an archived contact can be restored. Restoring re-adds a contact to your billable limit immediately, so reserve archive for contacts you do not intend to mail again.

Our first campaign just sat in Pending Approval for hours while a launch went out late

Every first-time campaign on a new ActiveCampaign account is held for manual approval before a single email leaves, as are later campaigns with high bounce, spam, or unsubscribe rates, an invalid physical address, or a non-ActiveCampaign unsubscribe link. Approval is usually under 10 minutes but runs slower outside US business hours, so a time-sensitive launch or late-night automation can miss its window.

The fix Do not schedule your first-ever campaign against a hard deadline; send a small, clean warm-up campaign a day or two earlier to clear the first-time review while nothing is riding on it. Keep campaigns compliant so later sends are not pulled into review: include a complete, valid physical mailing address in the footer and keep ActiveCampaign's built-in unsubscribe link intact. Plan first sends during US business hours when the review team is staffed. If a campaign stalls in Pending Approval or Analyzing, check the account email on file for a message requesting more information and respond quickly.

ActiveCampaign shows the campaign as sent, but Microsoft quarantines it as phishing after delivery

Senders report clean metrics yet see business and Microsoft-hosted recipients get nothing. ActiveCampaign confirmed a filtering trend where the unsubscribe link, which routes through the shared activehosted.com tracking domain, gets flagged by Microsoft Defender as phishing, so messages log as sent but are quarantined by the recipient environment. Re-verifying SPF, DKIM, and DMARC made no difference.

The fix The trigger is the shared link-tracking and unsubscribe domain, not your authentication. Move your tracking and unsubscribe links off the shared activehosted.com domain by setting up a branded link-tracking domain (a CNAME you add in DNS and connect on the ActiveCampaign side) so the URLs resolve under your own domain rather than a shared one many senders share. Senders see the quarantine stop once the custom domain is connected. Note that a full branded link-tracking domain is limited to higher-tier plans, so check what your plan allows.

ActiveCampaign deliverability, answered.

Why does Gmail show "via acems1.com" next to my sender name?

Your account is still signing mail with ActiveCampaign's default domain instead of yours. Set up your sending domain under Settings > Advanced; once DKIM signs with your own domain, ActiveCampaign confirms the via label goes away. The same setup moves the Return-Path (the mailed-by domain) onto your domain as well.

Spam Check says Passed. Why are my campaigns still going to spam?

Because Spam Check is a content check, not a placement test. It runs SpamAssassin against your copy and knows nothing about your domain reputation, authentication, or list quality, and the major mailbox providers barely use SpamAssassin. Verify the signals that matter by sending a real campaign to seed addresses and reading authentication and placement on that exact send.

Do I need to add ActiveCampaign to my domain's SPF record?

No. SPF is checked against the Return-Path domain, which is either ActiveCampaign's own domain or, once your sending domain is set up, the Mailserver Domain CNAME on your domain. An include in your root SPF record does nothing for campaign alignment. Aligned DKIM through the sending domain setup is what makes DMARC pass.

Will a dedicated IP get me out of the spam folder?

Very unlikely. ActiveCampaign sells dedicated IPs at $750 each and requires at least 100,000 active, engaged contacts, because smaller senders consistently do worse alone than on its managed shared pools; ActiveCampaign's own guidance says about 99% of users get better deliverability on shared IPs. Spam placement is almost always a domain reputation, authentication, or list problem, and those follow you to any IP.

Can Unspam connect to my ActiveCampaign account and test automatically?

No. Unspam does not integrate with the ActiveCampaign API or any other ESP API. The workflow is manual on purpose: add Unspam's test address to a list, send a real campaign or automation email to it, and read the results in Unspam. That is the only way to test the exact message your subscribers receive.

Why did my From address change to something ending in emcampaign.com?

ActiveCampaign substitutes a generic address on its own domain when your From domain is not authenticated, a change rolling out to accounts under 5,000 contacts, and it has replaced @gmail.com From addresses the same way since February 1, 2024. Replies still reach you, but reputation accrues to ActiveCampaign's domain. Authenticate your domain in Settings > Advanced and your real From address comes back.

ActiveCampaign platform details were verified against publicly available documentation in June 2026 and may have changed since. ActiveCampaign is a trademark of its respective owner. Unspam is not affiliated with or endorsed by ActiveCampaign.

Test your next ActiveCampaign campaign before your subscribers do.