Mail is the part of a hosting account that grows without anyone deciding to grow it. Nobody uploads a gigabyte of email; it accumulates a message at a time, and then the account is full and everything stops.
Mailbox quotas are how you keep that from happening, and the settings that matter are not the obvious ones.
Set a quota on every mailbox
When you create an account, cPanel offers a quota or unlimited. Choose a number.
Unlimited does not mean unlimited. It means the mailbox is limited by the whole account instead. So one mailbox nobody has emptied in eight years can consume the disk that the website needs, and the failure appears as a website that cannot write files.
A specific quota contains the problem to one mailbox. The person using it gets a warning, and the rest of the account keeps working.
2 GB is a reasonable default for a working mailbox. Adjust upward for people who genuinely need it instead of starting from no limit.
What happens when a mailbox fills
Incoming mail is rejected with a message telling the sender the mailbox is full. The sender sees it; the recipient usually does not.
That asymmetry is why full mailboxes go unnoticed for weeks. The person losing mail has no signal at all, and the people who tried to reach them assume the message arrived.
cPanel sends warnings as a mailbox approaches its limit. Those go to the mailbox itself, which works: a mailbox at 90% can still receive, but only if somebody reads that mailbox.
Finding what is actually using the space
In cPanel, the Email Accounts list shows each mailbox with its usage. Sort by size and the answer is usually immediate.
Two patterns account for most of it.
A catch-all or shared mailbox receiving everything sent to the domain, including years of spam.
An old mailbox for someone who left, still receiving mail, read by nobody.
Neither is fixed by raising a quota. Delete the mailbox and set up a forwarder if the address still needs to work. Setting up email forwarders walks through that, and a forwarder uses no disk at all.
The setting that causes most of it: leave on server
This is the one worth understanding properly, because it explains mailboxes that grow despite being emptied.
A mail client set up with IMAP keeps messages on the server by design. That is what makes the same mail available on a phone and a laptop. Deleting on one device deletes on the server.
A client set up with POP downloads mail, and usually has an option to leave a copy on the server. With that option on and no expiry set, every message ever received stays on the server forever, while the user sees a tidy local inbox and believes they have been deleting things.
Check that setting before doing anything else about a mailbox that refills after every cleanup. Configuring email in Outlook explains where it lives.
Folders people forget
Deleting mail from the inbox moves it to Trash, which is still on the server and still counts.
Three folders to check on any large mailbox: Trash, Junk and Sent. Sent is the surprise; every attachment anyone has ever emailed out, kept indefinitely, and nobody thinks to look there.
In webmail, empty Trash and Junk properly rather than only deleting from the inbox. Accessing webmail walks through getting in when the desktop client is not available.
Spam that was filtered still takes space
A spam filter moving mail to a junk folder has not saved any disk. It has moved the problem into a folder nobody empties.
Set spam to be deleted after a period rather than kept indefinitely. Thirty days is enough to rescue a false positive and short enough to stop accumulation. Configuring spam filters goes into the retention setting.
Archiving rather than deleting
When mail must be kept but does not need to be on the server, the answer is to move it off rather than to buy more disk.
Most mail clients can export a folder to a local file. Do that for anything older than a year or two, verify the export opens, then delete from the server.
Keep the archive somewhere backed up. A local export is only as safe as the machine holding it, and a laptop is not a backup.
Checking the whole account
cPanel's disk usage view breaks the account down by directory, and mail appears there alongside files and databases.
Look at it before assuming the website is what filled the account. On a business account with several staff mailboxes, mail is very often the larger half. Monitoring your hosting resources sets out reading the breakdown.
A working policy
Quota on every mailbox, no exceptions. Spam deleted after thirty days. Trash emptied automatically. Archive anything over two years old off the server.
Set those four once and mail stops being the reason an account fills. Skip them and you will have the same conversation every eighteen months.
For creating and removing the accounts themselves, How to Create and Manage Email Accounts explains the interface.
Freeing space by deleting old mail destroys the record; moving it keeps both. How to Archive and Retain Business Email walks through the difference between a backup and an archive.
The mailbox that grows because nothing is deleting
Some mailboxes fill for a reason no policy covers: an address that only receives automated messages and that nobody has ever opened.
for d in ~/mail/*/*; do printf '%8s %s\n' "$(du -sh "$d" 2>/dev/null | cut -f1)" "$(basename "$d")" done | sort -h | tail -10 find ~/mail -name 'maildirsize' -newermt '-7 days' | head
Monitoring alerts, form submissions, cron output and bounce reports all arrive somewhere, and that somewhere is frequently an address created years ago with nobody responsible for it.
Two fixes, and the second is the real one. Set a retention rule so the folder self trims, and redirect the traffic to a system that is meant to hold it rather than to a mailbox. Alerts belong somewhere that shows a history, not in a mailbox that silently fills and then refuses the next alert.
Bounces and autoresponders multiply quietly
Mail that could not be delivered comes back, and mail that answers automatically goes out again. Both leave copies.
exim -bp 2>/dev/null | wc -l ls ~/etc/*/ 2>/dev/null | head du -sh ~/.cpanel/nvdata ~/etc 2>/dev/null
A queue that is not draining is storing every undelivered message on your disk, and a mailing sent to a stale list produces thousands of them.
Autoresponder logs behave the same way. Each reply is recorded, and an address that receives automated mail and answers it automatically produces a loop that consumes space steadily until somebody notices the disk figure rather than the mail.
Move the old mail off rather than deleting it
Most quota problems are solved by deletion under time pressure, and that is the version people regret.
mkdir -p ~/mail-archive rsync -a ~/mail/example.com/user/.Archive/ ~/mail-archive/user-archive/ du -sh ~/mail-archive
Copy first, confirm the copy is complete and readable, and only then remove from the mailbox. A copy taken while the client is connected can miss messages, so do it with the client closed.
Where the requirement is legal rather than practical, the archive belongs off the account entirely, since a backup of the account is not an archive if the account is what fails. Using rsync for transfers and backups goes into the copy that lives elsewhere.