Skip to content

Mailboxes and Forwarders

CorePanel runs a full mail stack — Postfix, Dovecot and Rspamd — and manages it per domain. This page covers the day-to-day: the addresses themselves. For how the stack fits together, see Mail System.

Mail
Primary domainYes — its own mailboxes and DKIM identity
Addon domainYes — its own mailboxes and DKIM identity
Alias (parked) domainNo mailboxes of its own; its mail is redirected to the primary
SubdomainNo. Mail belongs to domains, not to subdomains

Email accounts in the panel lists mailboxes per domain. Creating one asks for the local part, a password and a quota in MB (0 = unlimited).

You can afterwards:

  • change the password;
  • resize the quota;
  • enable or disable the account without deleting it;
  • delete it.

Mailbox creation is capped by the account’s Email accounts limit (0 = unlimited).

The server refuses it during the SMTP session, so the sending server is told immediately and no message is ever accepted. Writing to an address that was mistyped, or to a mailbox that was deleted, produces an instant “no such recipient here” rather than a bounce arriving minutes later.

That matters for more than tidiness. Accepting a message first and discovering afterwards that it has nowhere to go leaves the server owing its sender a bounce — and the senders on spam runs are forged, so those bounces go to people who never wrote to you. A server doing that is emitting backscatter, and mail providers score it against the server’s reputation. Refusing during the session emits none.

A mailbox that exists but is suspended is refused with a different reason — “this mailbox is suspended” — so a correspondent is not told to delete an address that is coming back.

A mailbox has two halves that can be shut independently:

StateReceives mailCan sign in
Activeyesyes
Sign-in blockedyesno
Suspendedno — the sender gets a bounceno

Suspending from the panel closes both: the address stops accepting mail and the sender is told so, which is the honest signal for an account that is really shut.

Sign-in blocked is the state you inherit rather than choose. Other panels suspend a mailbox’s login while the address keeps receiving — cPanel does it by locking the password hash — so an imported mailbox arrives that way: the mail keeps arriving and piling up, and the owner cannot read it until you turn sign-in back on. Reactivating the mailbox opens both halves.

The mailbox’s Security section also shows its own sign-in record: when it last signed in successfully, when it was last rejected, how many rejections there have been and from how many distinct addresses, above the most recent events.

This is usually the fastest way to settle “my email stopped working” — whether the last accepted sign-in was minutes or months ago, and whether anything has been rejected since, answers the question before any setting is touched. The full picture, for every mailbox on the server, is in Access Protection.

Use the server’s hostname, the full email address as the username, and TLS:

IMAP993, SSL/TLS
SMTP587 with STARTTLS, or 465 with SSL/TLS — either way, authentication is required
UsernameThe full address, info@example.com

Both submission ports are open and equivalent, so a client migrated from another panel keeps whichever it was already set to.

Webmail is available at webmail.<domain> — provisioned automatically for every domain, which is why webmail is a reserved subdomain label. The username there is the full address too.

Webmail is reachable from the whole internet for every domain on the server, so mailbox passwords are what stands between an attacker and the mail. Set strong ones — the panel generates them for you when you create or edit a mailbox.

A forwarder (alias) sends mail arriving at one address on to one or more other addresses. It is not a mailbox: nothing is stored, the message is passed along.

Use them for role addresses (sales@, billing@) that should land in a person’s existing mailbox, or to deliver one address to a whole team.

You can forward to any address, inside or outside the server. Every destination is validated as a real email address.

Destinations on this server must be able to receive

Section titled “Destinations on this server must be able to receive”

A forwarder pointing at an address on one of your own domains is only accepted when something there can actually take delivery: a mailbox, another forwarder, or a catch-all. If there is nothing — or the destination mailbox is suspended — saving is refused, and the error names the address.

The reason is what happens otherwise. The forwarder saves, lists, and looks perfectly healthy, while every message through it is accepted by the server, passed on, found to have nowhere to go, and bounced back to whoever wrote to you. Nothing in the panel shows it; the only trace is in the mail log.

That check runs when you save, so a destination deleted or suspended later can still leave a forwarder pointing at nothing. Those are flagged where you see them:

Terminal window
corepanel mail forwarder list example.com
support@example.com -> old-staff@example.com
!! cannot receive: old-staff@example.com
1 forwarder(s) point at an address that cannot receive mail; every
message through them bounces back to the sender. Create or reactivate the
mailbox, or repoint the forwarder with `corepanel mail forwarder set`.

Destinations on domains this server does not host are never flagged — there is no way to check them from here.

An address is normally either a mailbox or a forwarder: mail is delivered, or it is passed along. The one way to have both is to list the address among its own destinations.

sales@example.com forwarding to sales@example.com and boss@partner.tld delivers the message into the sales@ mailbox and sends a copy to boss@. It is the arrangement you want for a role address somebody still reads locally while a manager, an archive or a ticketing system gets a copy.

Two conditions, both checked when you save:

  • A mailbox must exist at that address, and its delivery must be open. Pointing at yourself with no mailbox there resolves to an unknown user, and a suspended mailbox bounces — so both are refused rather than silently generating bounces later.
  • Deleting the mailbox removes the copy. The self-reference goes with it, and the forwarder goes too if that was its only destination. Nothing is left pointing at an address that no longer resolves.

Any other forwarder on the address of a mailbox is still rejected. Postfix resolves forwarders before mailbox delivery, so it would divert every message away from the mailbox without saying so.

A catch-all delivers everything sent to an address that does not exist at the domain to one mailbox of your choice.

Convenient — nothing is ever lost to a typo — and expensive: spammers enumerate addresses, and a catch-all accepts every one of them. Prefer explicit addresses and forwarders, and use a catch-all only temporarily, for example just after a migration while you find out which addresses people actually use.

A domain redirect sends every address at one domain to the same local part at another: anything@olddomain.comanything@newdomain.com.

This is what CorePanel sets up automatically when you add a domain alias, so that mail to the alias never bounces. You can also configure one by hand after a rename, so the old domain’s mail keeps arriving without recreating every mailbox.

A domain has one route: a catch-all and a redirect are mutually exclusive.

Opening a mailbox gives you its own workspace.

An out-of-office reply with a subject, a body, a start and end date, and a minimum interval between replies to the same sender (so one correspondent does not receive twenty identical answers).

Rules applied at delivery: match on sender, recipient, subject or body, and file the message into a folder, forward it, or discard it. Filters are compiled to Sieve and run in Dovecot, so they apply no matter which client you read the mail with — including webmail and your phone.

The Email authentication page shows, per domain, the state of the records that decide whether your mail is trusted:

RecordRole
SPFLists which servers may send for the domain
DKIMSigns outgoing mail with the domain’s key
DMARCTells receivers what to do when SPF and DKIM fail, and where to send reports

For a domain whose DNS CorePanel serves, SPF and DKIM are published automatically when the domain is created. For a domain on external DNS, the page gives you the exact record values to paste into your provider, and Verify re-checks what is actually visible in DNS.

Publishing a DMARC record is the step most often skipped, and it is the one that turns SPF and DKIM into an enforceable policy. Start with p=none and reports, then tighten.

Terminal window
corepanel mail list example.com
corepanel mail quota sales@example.com 1024
corepanel mail suspend sales@example.com
corepanel mail forwarder set sales@example.com owner@example.com
corepanel mail catchall set example.com bucket@example.com
corepanel mail redirect set old-example.com example.com
corepanel mail vacation set sales@example.com --subject "Away" --message "Back on Monday"

Mailboxes are created from the panel; the CLI covers listing, quotas, suspension, deletion, forwarders, catch-alls, redirects, autoresponders and filters. The full command list is in the CLI reference.