Skip to content
Back to Blog
Hosting Support8 min read

How to Fix Email Not Sending from cPanel

Emails not sending from your cPanel hosting? This step-by-step guide covers the most common causes — from misconfigured SPF/DKIM records to blacklisted IPs — and how to fix them fast.

Written by Abdul AbrorTechnical Hosting Support Engineer
On this page

Nothing is more frustrating than sending an important email from your website or cPanel account only to have it silently disappear. The recipient never gets it, there is no bounce-back, and you have no idea what went wrong. This guide walks through every common cause of emails not sending from cPanel and gives you a clear fix for each one.

1. Verify Your MX Records Are Correct

MX (Mail Exchanger) records tell the internet where to deliver email for your domain. If they point to the wrong server, outbound mail from your hosting account may never reach its destination — and inbound mail will also fail.

To check your MX records, log in to cPanel and open Email Deliverability or use a public DNS lookup tool like MXToolbox (mxtoolbox.com). Your MX record should point to your mail server — typically mail.yourdomain.com — with a priority value of 0 or 10.

If your MX records are missing or point to a third-party provider like Google Workspace or Microsoft 365, outbound mail from cPanel's built-in mail server will still work, but you need to make sure your sending configuration matches the active mail provider.

2. Set Up SPF, DKIM, and DMARC Records

These three DNS records are the most common reason emails land in spam or get rejected entirely by modern mail servers. Without them, recipient servers have no way to verify that your email is legitimate.

SPF (Sender Policy Framework)

SPF tells receiving mail servers which IP addresses are authorised to send email on behalf of your domain. A basic SPF record for cPanel hosting looks like this:

v=spf1 +a +mx +ip4:YOUR.SERVER.IP ~all

Add this as a TXT record in your DNS zone. You can find your server IP in cPanel under Server Information or by checking WHM > Server Configuration > Basic WebHost Manager Setup.

The ~all at the end means a “soft fail” — emails from unauthorised IPs are accepted but marked as suspicious. For stricter enforcement, use -all.

DKIM (DomainKeys Identified Mail)

DKIM adds a cryptographic signature to every outgoing email so the recipient can verify it was not tampered with in transit. cPanel can generate and manage your DKIM keys automatically.

In cPanel, go to Email Deliverability. If DKIM is not configured, you will see a warning. Click Repair and cPanel will generate the DKIM key and add the DNS record for you — as long as you manage your DNS through the same hosting account.

DMARC (Domain-based Message Authentication)

DMARC builds on SPF and DKIM to tell receiving servers what to do when an email fails authentication. Start with a monitoring-only policy:

v=DMARC1; p=none; rua=mailto:[email protected]

Add this as a TXT record with the hostname _dmarc.yourdomain.com. Once you confirm legitimate mail is passing, you can upgrade the policy to p=quarantine or p=reject.

3. Check if Your Server IP is Blacklisted

On shared hosting, dozens or hundreds of websites share the same IP address. If any of those sites sends spam, the entire IP can end up on a blacklist — and your emails will be rejected by Gmail, Outlook, and other major providers.

Use MXToolbox Blacklist Check (mxtoolbox.com/blacklists.aspx) and enter your server IP. If you appear on one or more blacklists, contact your hosting support team immediately. They can request delisting or move your account to a clean IP.

If you find your IP is frequently blacklisted on shared hosting, it is worth considering a dedicated IP address for email, or switching to a dedicated transactional email service like Mailgun, SendGrid, or Amazon SES for sending emails from your web application.

4. Fix PHP mail() Issues

Many WordPress sites and web applications send email using PHP's built-in mail() function. On shared hosting, this function is often restricted or disabled to prevent spam abuse.

The most reliable fix is to switch from mail() to SMTP. For WordPress, install a plugin like WP Mail SMTP and configure it to send through your cPanel email account or a third-party SMTP provider. The SMTP settings for cPanel are:

  • SMTP Host: mail.yourdomain.com
  • SMTP Port: 465 (SSL) or 587 (TLS)
  • Username: your full email address
  • Password: your email account password
  • Encryption: SSL/TLS

5. Check Email Account Sending Limits

cPanel hosting accounts often have hourly sending limits — typically 300 to 500 emails per hour per domain. If your site sends newsletters, order confirmations, or automated notifications in bulk, you may hit this cap and subsequent emails will be silently dropped.

Log in to cPanel and check Email Accounts. You can also check Track Delivery under the Email section to see if messages are being deferred or blocked. If you need to send bulk email, use a dedicated service like Mailchimp, Mailgun, or Amazon SES rather than your hosting account's mail server.

6. Verify the Recipient Is Not Blocking Your Domain

Sometimes the problem is not on your end. The recipient's mail server may have a rule that blocks email from your domain or IP. Ask the recipient to check their spam folder and add your email address to their safe senders list.

You can also send a test email to a Gmail address and check the full email headers (click the three-dot menu in Gmail → Show original). Look for any SPF, DKIM, or DMARC fail messages, and check the X-Spam-Status header to see your spam score.

7. Use cPanel's Email Deliverability Tool

cPanel includes a built-in Email Deliverability tool that automatically checks your SPF, DKIM, DMARC, and PTR (reverse DNS) records and shows you which ones need attention. It is the fastest way to identify configuration issues without manually checking every DNS record.

Find it in cPanel under Email → Email Deliverability. Any record showing a warning has a Repair button that applies the recommended fix automatically.

Quick Diagnostic Checklist

  • ✅ MX records point to the correct mail server
  • ✅ SPF record exists and includes your server IP
  • ✅ DKIM is enabled and the DNS record is published
  • ✅ DMARC record is configured
  • ✅ Server IP is not on any major blacklists
  • ✅ Email is sent via SMTP, not PHP mail()
  • ✅ Hourly sending limits have not been exceeded
  • ✅ cPanel Email Deliverability tool shows no warnings

When to Contact Your Hosting Support

If you have checked all of the above and email is still not sending, it is time to contact your hosting provider. Ask them specifically to:

  • Check the mail server logs for your domain
  • Confirm the server's IP reputation and blacklist status
  • Verify that the mail server (Exim) is running correctly
  • Check if your account has any sending restrictions applied

A good hosting support engineer will be able to trace the exact path of a failed email in the Exim log and tell you precisely why it was rejected, deferred, or dropped.