Cloud House Technologies Logo
CloudHouse Technologies
HomeServicesProjectsBlogAbout UsCareersContact UsLogin
    Cloud House Technologies Logo
    CloudHouse Technologies
    HomeServicesProjectsBlogAbout UsCareersContact UsLogin

    How to Fix cPanel/WHM 'Domain Has Exceeded the Max Emails Per Hour' Error

    Priya

    Content Writer & Researcher

    Last Updated: 18 July 2026
    🖥️

    cPanel Email Rate Limits Blocking Your Clients' Mail?

    CloudHouse's server management team can tune your WHM email limits, identify rogue scripts, and monitor your Exim queue — so legitimate mail always gets through. Get expert help today.

    🔧 Book Free DiagnosisCall NowWhatsApp
    🖥️12,400+PCs Fixed
    ⭐4.9★Google Rating
    ⚡<15 minAvg. Response
    🛡️ISO 27001Certified

    If you manage a cPanel/WHM server and your domain suddenly stops sending emails, one of the most common culprits is the hourly email limit. The error message typically looks like this in your Exim mail logs:

    domain.com has exceeded the max emails per hour (500/500 (100%)) allowed. Message discarded.

    Or for defer/failure limits:

    domain.com has exceeded the max defers and failures per hour (5/5 (100%)) allowed.

    These limits exist to protect your server's sending reputation, but they can block legitimate email traffic when thresholds are set too low or when a spam script runs on the account. This guide walks you through every fix — from immediately unblocking the domain to configuring the right long-term limits in WHM.

    Why cPanel Enforces Email Sending Limits

    WHM includes two distinct rate-limiting mechanisms for outbound email:

    • Max emails per hour per domain — caps the total number of messages a domain can send in a 60-minute window (default: 500 on most shared servers, unlimited on VPS/dedicated by default).
    • Max defers and failures per hour — caps the percentage of outgoing mail that bounces or gets deferred. When too many messages go to invalid recipients, Exim stops the domain from sending further.

    Both limits are designed to prevent a compromised WordPress site or rogue PHP script from spamming thousands of recipients and getting your server IP blacklisted. When the threshold is hit, Exim creates a lock file that blocks further sending until the hour resets — or until you manually remove the lock.

    💡 None of these worked? Skip the guesswork.

    Get Expert Help →

    Method 1: Immediately Unblock the Domain (Remove the Lock File)

    The fastest fix is to delete the lock file that Exim created when the domain hit its limit.

    1SSH into your server as root
    ssh root@your-server-ip
    2List lock files for blocked domains
    ls /var/cpanel/email_send_limits/

    You will see files named after blocked domains, for example: max_deferfail_yourdomain.com or max_hourly_yourdomain.com.

    3Remove the lock file for your domain
    rm /var/cpanel/email_send_limits/max_deferfail_yourdomain.com
    rm /var/cpanel/email_send_limits/max_hourly_yourdomain.com
    4Verify the queue resumes
    exim -bp | head -20

    Email sending for that domain will resume immediately after the lock file is removed. No Exim restart is required.

    1Log in to WHM as root at https://yourserver:2087

    2. Go to Server Configuration → Tweak Settings

    3Click the Mail tab and locate the setting:

    The maximum each domain can send out per hour (0 is unlimited)

    4. Set the value appropriate for your use case:

    • Shared hosting: 500–1000 per domain per hour
    • VPS/Dedicated with known sending needs: 0 (unlimited) or a higher cap like 5000

    5. Click Save at the bottom of the page.

    This setting applies server-wide to all accounts that do not have a per-account override.

    Method 3: Set a Per-Account Email Limit Override

    You can override the server-wide limit for a specific cPanel account without changing the global setting — useful when one high-volume sender needs a higher cap while others stay restricted.

    1. In WHM, go to Account Functions → Modify An Account

    2Search for and select the account, then click Modify
    3Scroll down to "Maximum Hourly Email by Domain Relayed"
    4Select the second radio button and enter a custom value (e.g., 2000), or select Unlimited for no cap

    5. Click Save

    The per-account setting takes precedence over the global Tweak Settings value.

    1In WHM, go to Server Configuration → Tweak Settings → Mail
    2Find the setting:

    Maximum percentage of failed or deferred messages a domain may send per hour

    3. Adjust the value:

    • Default is 5% — very strict, can trigger on small lists with some bad addresses
    • Raise to 20%–25% for managed servers with vetted senders
    • Set to Unlimited (0) to disable this check entirely on trusted servers

    4. Alternatively, configure per-account in Exim Configuration Manager:

    Go to Service Configuration → Exim Configuration Manager → Advanced and search for ratelimitcount to see the raw defer configuration.

    Method 5: Find and Remove the Root Cause

    Simply raising limits without finding what triggered the block is dangerous — it may allow a compromised script to continue spamming and get your server blacklisted. Always investigate first.

    Check Exim logs for the sending account:

    # Show recent outbound mail from a specific domain
    grep "domain.com" /var/log/exim_mainlog | grep "=>" | tail -50
    
    # Find what script generated the emails (look for "php" or script paths)
    grep "domain.com" /var/log/exim_mainlog | grep "cwd=" | tail -30

    Check for PHP mail abuse:

    # Show all email sent by PHP scripts in the last hour
    grep "$(date +%Y-%m-%d)" /var/log/exim_mainlog | grep "cwd=/home" | awk '{print $NF}' | sort | uniq -c | sort -rn | head -20

    Common causes to look for:

    • WordPress contact forms being abused (check wp-login.php POST attempts)
    • Compromised email account sending via authenticated SMTP
    • Bulk mailing scripts in /home/user/public_html/
    • Old newsletter scripts still running

    Method 6: Check and Flush the Exim Mail Queue

    After unblocking a domain, frozen or queued messages from the blocked period may need to be cleared or force-delivered.

    # Count messages in queue
    exim -bpc
    
    # List frozen messages
    exim -bp | grep frozen
    
    # Force delivery of all queued messages
    exim -qff
    
    # Delete all frozen messages
    exiqgrep -z -i | xargs exim -Mrm
    
    # Delete all messages from a specific sender
    exiqgrep -f "noreply@domain.com" -i | xargs exim -Mrm

    Preventing the Error from Recurring

    • Set up email alerts: In WHM, go to Contacts → Contact Manager and enable "Max email per hour exceeded" notifications so you are alerted before clients complain.
    • Use an external SMTP relay for bulk email (Mailgun, SendGrid, Amazon SES) — offloading bulk sends from Exim entirely eliminates this class of problem.
    • Review WordPress and application mail settings: Use SMTP plugins instead of PHP mail() to route through authenticated accounts with rate limiting built in.
    • Monitor the Exim queue daily: A growing queue of frozen messages is an early warning that a domain is approaching its limit.
    • Implement CSF/LFD email rate limiting: ConfigServer Firewall can monitor /var/log/exim_mainlog and block accounts that spike abnormally.

    Configuring WHM Email Limits — Quick Reference

    • WHM path for server-wide limit: Server Configuration → Tweak Settings → Mail → "Maximum each domain can send per hour"
    • WHM path for defer/failure limit: Server Configuration → Tweak Settings → Mail → "Maximum percentage of failed or deferred messages"
    • WHM path for per-account override: Account Functions → Modify An Account → "Maximum Hourly Email by Domain Relayed"
    • Lock file location: /var/cpanel/email_send_limits/
    • Exim main log: /var/log/exim_mainlog

    Managing email rate limits in cPanel/WHM is a balance between protecting your server's sending reputation and allowing legitimate high-volume senders to operate without interruption. If you find yourself repeatedly hitting these limits or struggling to identify rogue scripts, a managed server support service can monitor your Exim queue, tune WHM settings, and respond to incidents before they affect your clients.

    Get the Free Linux Server Admin Cheatsheet (PDF)

    Essential commands for server management, networking, and troubleshooting — all on one printable page.

    Running Linux servers? Let us manage them for you.

    Our Managed Linux Server plans cover updates, security hardening, monitoring, and 24/7 incident response — so your servers stay up and your team stays focused.

    • Proactive OS patching and security updates
    • 24×7 monitoring with instant alerting
    • Backup configuration and disaster recovery
    • Dedicated Linux engineers on call
    See Pricing Plans →

    What our customers say

    “Our production server went down at 2 AM. CloudHouse had it back online in under 20 minutes. Incredible response time.”

    Arun S.

    CTO, SaaS Startup

    “They migrated our entire infrastructure from Ubuntu 18 to 22 with zero downtime. Couldn't have asked for better.”

    Deepak N.

    DevOps Lead

    Frequently Asked Questions

    Delete the lock file in /var/cpanel/email_send_limits/ that corresponds to your domain. For example: rm /var/cpanel/email_send_limits/max_hourly_yourdomain.com. Email sending resumes instantly — no Exim restart needed.

    Book your free 15-minute diagnosis

    A certified technician will call you back within 15 minutes during business hours.

    Share this article

    Leave a Comment

    Comments (0)

    Loading comments...

    Need Help With cPanel Email Sending Limits?

    Repeated email blocks can damage your server's sending reputation and frustrate clients. CloudHouse Technologies manages WHM configuration, Exim queue monitoring, and spam script detection so you can focus on your business — not your mail logs.

    Call Now — FreeWhatsApp Us

    Why CloudHouse?

    • ISO 27001:2022 certified
    • 12,400+ devices supported
    • 4.9★ on Google
    • Sub-15-minute response

    CloudHouse Technologies

    Innovative cloud solutions for modern businesses. We deliver cutting-edge technology with exceptional service.

    Contact Us

    CloudHouse Technologies Pvt.Ltd
    Special Economic Zone(SEZ),
    Infopark Thirissur,4B-15,
    Indeevaram,Nalukettu Road,
    Koratty, Kerala, India-680308
    0480-27327360
    info@cloudhousetechnologies.com

    Quick Links

    • Our Services
    • Gold Loan Software
    • About Us
    • Contact
    • Terms and Conditions
    • Privacy Policy
    ISO27001:2022
    Certified

    © 2026 CloudHouse Technologies Pvt.Ltd. All rights reserved.

    Back to top