How to Set Email Send Limits
Last modified: 2026 June 12
Overview
WHM allows you to set hourly limits for outgoing email. You can specify the maximum number of emails each domain can send and the maximum percentage of failed or deferred messages. This allows you to limit spam and regulate bandwidth usage for domains on your server.
After the system reaches a limit, it does not block additional messages at SMTP time. Instead, the system accepts and then handles additional messages per the value of the The percentage of email messages (above the account’s hourly maximum) to queue and retry for delivery setting in the Mail section of WHM’s Tweak Settings interface (WHM » Home » Server Configuration » Tweak Settings).
Set the default hourly limit for all domains
To set the default hourly email limit for all of your server’s domains, enter a value for the Max hourly emails per domain setting in the Mail section of WHM’s Tweak Settings interface (WHM » Home » Server Configuration » Tweak Settings).
This value defines the default limit for all of the domains on your server, except for domains for which you manually set a different limit.
- The Maximum Hourly Email by Domain Relayed setting in the Edit a Package interface can set a lower maximum hourly email limit than the Max hourly emails per domain setting, but cannot set a higher limit.
- You cannot use the Max hourly emails per domain setting to disable email for an account or domain.
- The system only enforces email send limits on remote email deliveries.
Set an hourly limit for the domains of an account
To limit the number of emails per hour that an account’s domains can send, perform the following steps:
- Navigate to WHM’s Modify an Account interface (WHM » Home » Account Functions » Modify an Account).
- Specify a value for the Hourly Email by Domain Relayed configuration setting. This value cannot be higher than the Max hourly emails per domain setting, but can be lower.
- Click Save.
This option sets the email limits for all of the subdomains, addon domains, and parked domains (aliases) for an account’s main domain. However, the system counts the mail for each domain, subdomain, addon domain, and parked domain separately. When you enter a new limit, the system only applies the new value to the main domain and any domains without individually-defined values.
Set an hourly limit for an individual domain
If you wish for an individual domain to have a different hourly mail limit from the main domain, you can also configure a limit for each domain. This value cannot be higher than the Max hourly emails per domain setting, but can be lower.
To set a limit for an individual domain, perform the following steps via the command line as the root user:
- With a text editor, open the
/var/cpanel/users/usernamefile, whereusernamerepresents the account that owns the domain. - Add a line that contains the following text:
MAX_EMAIL_PER_HOUR- - To that line, append the domain name, an equals sign (
=), and the number of email messages to allow the domain to send per hour. For example, to allowexample.comto send 500 emails per hour, you could use the following line:MAX_EMAIL_PER_HOUR-example.com=500 - Save the changes to the file.
- Run the
/usr/local/cpanel/scripts/updateuserdomainsscript. This script constructs the individual threshold files that Exim uses to determine whether the account has reached its maximum email limit.
The system assigns the value of the MAX_EMAIL_PER_HOUR setting in the /etc/email_send_limits file to any domain without a specific entry in the /var/cpanel/users/username file. If the /etc/email_send_limits file does not exist, the system assigns the default value to the domain.
Set a deferred or failed message percentage limit for all domains
To set the maximum percentage of failed or deferred messages that all domains on your server may send per hour, enter a value for the Maximum percentage of failed or deferred messages a domain may send per hour setting in the Mail section of WHM’s Tweak Settings interface (WHM » Home » Server Configuration » Tweak Settings).
This value defines the default limit for all of the domains on your server, except for domains for which you manually set a different limit. When a domain exceeds this percentage, WHM temporarily blocks it from sending mail.
Set a deferred or failed message percentage limit for an account
To set the failed or deferred message percentage hourly limit for an account’s domains, perform the following steps:
- Navigate to WHM’s Modify an Account interface (WHM » Home » Account Functions » Modify an Account).
- Enter a value for the Maximum percentage of failed or deferred messages a domain may send per hour setting. This value defaults to Unlimited.
- Click Save.
Set a deferred or failed message percentage limit for an individual domain
To configure a different deferred or failed message percentage hourly limit for an individual domain, perform the following steps via the command line as the root user:
-
With a text editor, open the
/var/cpanel/users/usernamefile, whereusernamerepresents the account that owns the domain. -
Add a line that contains the following text:
MAX_DEFER_FAIL_PERCENTAGE- -
To that line, append the domain name, an equals sign (
=), and the percentage value to allow. For example, to set a limit of 25% forexample.com, you could use the following line:MAX_DEFER_FAIL_PERCENTAGE-example.com=25 -
Save the changes to the
/var/cpanel/users/usernamefile. -
Run the
/usr/local/cpanel/scripts/updateuserdomainsscript to apply the changes.
The system applies the account’s Maximum percentage of failed or deferred messages a domain may send per hour value to domains that do not have an entry in the /var/cpanel/users/username file. If the account does not define a value, the system uses the value from the Mail section of WHM’s Tweak Settings interface (WHM » Home » Server Configuration » Tweak Settings).