Skip to main content

Email Forwarding in cPanel: Setting Up Forwarders

Hosting & cPanel · 19.04.2026 · 5 min read
Illustration for “Email Forwarding in cPanel: Setting Up Forwarders”

Email Forwarders in cPanel automatically forward incoming mail from one address to another. For example, every message to info@example.com can be copied to your@gmail.com — with no need to set up a separate mailbox and check it manually.

Creating a Forwarder

cPanel → Email → Forwarders → Add Forwarder.

FieldDescription
Address to Forwardinfo (the part before @)
Domainexample.com
Forward to Email Addressyour@gmail.com

Forwarding does not delete the message from the original mailbox — it stays on the hosting and gets copied to Gmail, provided a mailbox actually exists for that address and not just a forwarder. A single address can have several forwarders pointing to different mailboxes at once — the message copy then goes out to every recipient simultaneously, which is often used to duplicate contact-form submissions to several staff members at once.

Common error: a forwarding loop

If forwarding is mistakenly set up pointing an address at itself, or at a chain of two addresses that forward to each other, the sender gets a bounce message:

Final-Recipient: rfc822; info@example.com
Action: failed
Status: 5.4.6
Diagnostic-Code: smtp; 554 5.4.6 Too many hops, this message is looping,
your.address@example.com

The mail server counts how many times a message has been relayed and cuts off the chain after a certain hop limit to avoid an infinite loop. The fix is to check the entire forwarding chain in cPanel → Forwarders and make sure the final address does not forward mail back to the original one.

Forwarding an entire domain (Domain Forwarder)

cPanel → Email → Forwarders → Add Domain Forwarder. Every message to any address on the domain gets forwarded to the specified domain.

Catch-all address

Catch-all captures mail sent to addresses that do not exist on your domain:

cPanel → Email → Default Address → "Forward to Email Address" → specify the mailbox.

Catch-all attracts a lot of spam — spammers send mail to random addresses on your domain. Use it carefully, ideally together with SpamAssassin. An alternative to forwarding is the "Discard" option in the same Default Address section: mail to non-existent addresses is silently rejected with a 550 error on the sender's side instead of landing in one shared mailbox. This is cleaner from a spam-protection standpoint, but a sender who made a typo in the address gets no notice that the message never arrived.

Forwarding methods compared

MethodLevelWhere it is configured
ForwarderOne specific addresscPanel → Email → Forwarders
Domain ForwarderThe entire domaincPanel → Email → Forwarders
Catch-AllEvery non-existent address on the domaincPanel → Email → Default Address
.forward (SSH)One system mailboxA file in the home directory

Forwarding via the .forward file (SSH)

# Create a .forward file in the home directory
echo "your@gmail.com" > ~/.forward

# Forward while keeping a local copy
echo "\yourusername, your@gmail.com" > ~/.forward
# A backslash before the username means "also keep it locally"

The Forwarders form in cPanel essentially creates a similar file on the server under the hood — direct access to .forward over SSH gives more flexibility, for example routing the message through procmail for extra filtering before forwarding, something the graphical interface does not allow.

When forwarding breaks deliverability

  • A forwarded message keeps the original sender's envelope — on the final server (Gmail), the SPF check for the forwarding domain can fail because the forwarding server's real IP is not in the original sender's SPF record
  • The original message's DKIM signature is usually preserved and passes verification, but if the forwarding server changes the subject or adds a prefix, the signature breaks
  • Large mail providers (Gmail, Outlook) flag forwarded messages as suspicious more often, especially at high volume — this is a limitation of the forwarding protocol itself, not your SPF/DKIM configuration
  • For critical business correspondence, a real mailbox with IMAP is more reliable than a forwarder — then SPF and DKIM are checked against the real sender with no distortion

Verifying it works

# Send a message to the forwarded address, then open the
# received message in the target mailbox and check the headers:
# Received: from mail.example.com ...
# This confirms the message really passed through the forwarder,
# rather than being delivered directly.

Also check the Spam folder — the first messages after setting up a new forwarder sometimes land there until the mail provider "gets used to" the new source. More on configuring SPF and DKIM for the main domain is in cPanel Email: configuring DKIM, SPF, and DMARC.

Was this article helpful?
← Back to Knowledge Base Ask Support