Enterprise Mail Security & Deliverability

Mailcow SaaS Guide: Rate Limits, Disk Quotas, and Overselling

The ultimate guide to configuring Mailcow rate limits to stop spammers, managing disk quotas, and utilizing thin provisioning to scale your email SaaS safely.

Published by TwaMeHi Systems • Verified Protocol Architecture

When building an email hosting SaaS using Mailcow, your two biggest enemies are spammers ruining your IP reputation and power users exhausting your server's physical disk space. Here is the ultimate guide to configuring Mailcow rate limits, quotas, and SaaS upsell strategies.

1. How do I prevent users from abusing my SMTP server to send spam?

If you give customers SMTP credentials, malicious users will inevitably try to plug those credentials into bulk mailing software to blast thousands of spam emails. To prevent this, you must set strict Outbound Rate Limits.

In Mailcow, you can enforce a hard stop (e.g., 100 emails per hour). A normal business user replying to emails will never hit this limit, but a spammer will hit it in 3 minutes, triggering an automatic block.

How to set a Global Default Rate Limit in Mailcow:

  1. Log in to your Mailcow Admin Panel.
  2. Click on E-Mail ➔ Configuration in the top right menu.
  3. Click on the Defaults tab.
  4. Find the Rate limit setting and set it to 100 msgs / hour.
  5. Save your changes. This applies the limit to all future domains automatically.

2. Max Mailboxes vs. Max Aliases: What is the best SaaS strategy?

When defining your default hosting templates, it's crucial to understand the difference in server cost between an inbox and an alias.

  • Mailboxes (Keep the limit low): A mailbox is a physical inbox with a password. It consumes disk space. Giants like Google Workspace charge /month per mailbox. Set your default plan to allow only 3 to 5 mailboxes. When a company hires their 6th employee, they hit the limit, creating a natural upgrade opportunity.
  • Aliases (Keep the limit high): An alias (like billing@ forwarding to ceo@) is just a routing rule. It has no password and uses zero disk space. Set this limit high (e.g., 400). It makes your platform look incredibly generous without costing you a single cent in server resources.

3. If I have a 100GB server and sell 300GB of quotas, what happens?

Mailcow uses dynamic allocation (thin provisioning). When you create a mailbox and give it a 3 GB limit, the server does not instantly block out 3 GB on the hard drive. A brand-new inbox only uses a few kilobytes.

Space is only consumed when physical emails arrive. This means you can safely oversell your server space. You can host 100 users with a 3 GB limit each (300 GB total promised) on a 100 GB server, because in reality, most users only use 50MB to 200MB.

⚠️ The Danger of Overselling

If your physical hard drive ever hits 100% full, your server will crash and all incoming emails will bounce. Always set a server alert to notify you when your physical disk hits 80% capacity so you can upgrade the drive before disaster strikes.

4. How should I handle users who hit their mailbox limit?

Never show a dead-end error! If a user tries to create an 11th mailbox and the Mailcow API rejects it because the quota is reached, your frontend UI should intercept that error.

Instead of a red error text, render a beautiful "Contact Support to Upgrade" button. By using a smart mailto: link, you can pre-fill the subject line and body text (e.g., "Upgrade Request: Increase Mailbox Limit for mydomain.com"), turning a frustrating limitation into a seamless sales funnel.