You've set up a forwarder from sales@yourdomain.com to your Gmail, or turned on an autoresponder while you're on leave — and now something's off. Mail isn't arriving, the auto-reply won't stop firing, or a message you forwarded landed in the recipient's spam folder instead of their inbox. None of this means cPanel is broken. Forwarders and autoresponders are simple features, but they interact with spam filters, mail routing, and each other in ways that trip people up constantly. Here's how they actually work and how to fix the common failures.

Symptom: Forwarded Mail Goes Missing or Lands in Spam

The setup looks right in cPanel — the forwarder is listed, the destination address is spelled correctly — but mail either never shows up, or it does show up and immediately gets flagged as spam by Gmail or Outlook. A few variants of this ticket come in every week:

  • A forwarder to a Gmail address works for a few days, then Gmail starts bouncing messages with "550-5.7.1 message rejected."
  • The forwarded copy shows the original sender's address in the "From" field, but SPF/DKIM checks fail at the destination because the forwarding server isn't authorized to send as that domain.
  • A forwarder was created for info@yourdomain.com, but a catch-all rule elsewhere on the account is intercepting mail before the specific forwarder ever fires.

Cause: Forwarding Breaks Email Authentication by Design

When cPanel forwards a message, it resends it from your mail server to the destination — but the "From" header still shows the original sender. That's a textbook spoofing pattern from the receiving server's point of view, and it's exactly what SPF and DKIM exist to catch. If the original sender's domain has a strict SPF policy (-all) and the message arrives via a server that isn't in their SPF record, Gmail and Outlook increasingly reject or spam-flag it, even though your forwarder did nothing wrong.

The second common cause is rule ordering. cPanel evaluates a hierarchy of mail routing: individual mailbox rules, then forwarders, then a catch-all if one exists, then default account handling. A catch-all set to "Discard" or pointed somewhere unexpected silently eats mail before your intended forwarder gets a chance, and there's no error message — the sender's message just vanishes from your perspective while their server reports a normal delivery.

Fix: Set Up Forwarders So They Actually Deliver

1. Create the Forwarder Correctly

In cPanel, go to Email > Forwarders > Add Forwarder. Pick the address you're forwarding from, then choose "Forward to Email Address" and enter the destination. Avoid forwarding chains — A forwards to B, which forwards to C — since each hop adds another point where authentication can fail and makes troubleshooting a maze.

2. Check for a Conflicting Catch-All

Go to Email > Default Address and check what's set for the domain. If it's anything other than "Discard with error" or intentionally blank, a stray catch-all can be swallowing mail meant for a specific address. If you don't need a catch-all, set it to discard with error so misdirected mail bounces back to the sender instead of disappearing silently on your end.

3. Fix the SPF/DKIM Rejection Problem

If the destination mailbox is rejecting forwarded mail specifically (not all mail from your domain), you have two real options:

  • Enable SRS (Sender Rewriting Scheme) if your mail server supports it — it rewrites the envelope sender so the forwarding hop passes SPF at the destination. Ask your host whether Exim/SRS is available; on SkyServer's cPanel servers it can be enabled at the mail server level.
  • Switch from forwarding to pulling mail via IMAP/POP in Gmail or Outlook instead of a server-side forwarder. This avoids the resend-with-original-From problem entirely because the message is fetched, not relayed.

For a one-off, whitelisting your domain's forwarding server IP in the destination mailbox's filters can help, but it's not a durable fix if the destination provider tightens its spam rules later.

4. Test With a Header Trace

Send a test message and look at the full headers on the receiving end (in Gmail: "Show original"). Check the Authentication-Results line. If SPF shows softfail or fail, that confirms the authentication issue rather than a delivery failure — the message reached the destination server, it just got filtered.

Symptom: Autoresponder Won't Turn Off, or Fires on Every Message

The vacation message keeps sending even after the end date has passed, or worse, it's stuck in a reply loop with another autoresponder (common when two people on different domains both have out-of-office replies active and email each other).

Cause: Interval Settings and Loop Detection

cPanel's autoresponder only sends one reply to a given sender within a set interval (default 24 hours), which is why it doesn't normally spiral into an infinite loop with itself — but two separate autoresponders replying to each other across domains can still generate a noticeable back-and-forth before both intervals kick in. Separately, if the "Stop" date field was left blank or set incorrectly, the responder just keeps running indefinitely.

Fix: Configure the Autoresponder Properly

Go to Email > Autoresponders, select the responder, and check these fields:

FieldWhat to Set
IntervalLeave at 24 hours unless you have a specific reason to change it — this is what prevents reply loops from spiraling
Start/StopAlways set both, even for "come back next week" messages — an open-ended responder is easy to forget
HTML vs Plain TextMatch what your usual outgoing mail uses, so the auto-reply doesn't look out of place to recipients
From NameUse a real name or "Do Not Reply," not the mailbox address alone — it reads less like spam

If it's still firing after the stop date, delete and recreate the autoresponder rather than editing it — cPanel occasionally holds onto a stale rule in Exim's queue that a straight edit doesn't clear, and recreating forces a clean rule.

Prevention: Keep Mail Routing Predictable

  • Document every forwarder and catch-all on the account somewhere outside cPanel — a spreadsheet is fine. Six months later nobody remembers why info@ forwards to three addresses.
  • Avoid stacking forwarders more than one hop deep.
  • Set autoresponder stop dates every single time, no exceptions.
  • If a domain sends real business mail, keep SPF/DKIM/DMARC records current — they affect forwarding reliability just as much as direct sending.
  • Review Email > Default Address quarterly on accounts with multiple domains; catch-alls tend to accumulate and get forgotten.

Frequently Asked Questions

Can I forward email to more than one address at once?

Yes. When adding a forwarder in cPanel, you can create multiple forwarder entries for the same source address, each pointing to a different destination. Every destination gets its own copy of incoming mail.

Why does my forwarded mail show the original sender instead of my domain?

That's expected behavior — cPanel forwarders preserve the original "From" address so replies go to the right person. It's also the reason forwarded mail can trigger SPF checks at the destination; see the SRS fix above if that's causing rejections.

Does an autoresponder count against my email account's send limit?

Yes. Autoresponder replies go through the same outbound mail queue as regular email and count toward your account's max hourly email limit in cPanel, so a large volume of incoming mail during a vacation period can still hit that cap.

Can I set up a forwarder for an address that doesn't have a mailbox?

Yes — forwarders don't require an existing mailbox. You can forward sales@yourdomain.com straight to another address without ever creating a sales@ mailbox on the server, which is the standard setup for role addresses that don't need their own inbox.

Will disabling the catch-all break anything?

Not if you don't rely on it. Setting the default address to "Discard with error" just means misspelled or non-existent addresses bounce back to the sender instead of silently disappearing into a mailbox nobody checks — which is usually the safer setting for most domains.