Skip to content
Back to Blog
Hosting Support11 min read

How to Fix Email Not Sending cPanel: 7 Checks [Solved]

cPanel email won't send? Walk through authentication, ports, quotas, DNS records, and logs—no prior knowledge required.

Written by Abdul AbrorTechnical Hosting Support Engineer
How to Fix Email Not Sending cPanel: 7 Checks [Solved]
On this page

What happens when email won't send from cPanel

You click Send in cPanel Webmail—or your mail client—and nothing happens. The message sits in your outbox, or you see a vague error about "relay access denied" or "authentication failed." From support tickets I handled, the usual culprit is a misconfigured SMTP setting, a blocked port, or a missing DNS record. Sometimes it's a full disk or a firewall rule you didn't know existed.

This guide assumes zero background. I'll define every term, show you where to click, and walk you through the seven checks that solve most send failures. By the end you'll have a working outbound setup and know how to read the logs when something breaks again.

What cPanel actually is (and why email lives there)

cPanel is a web-based control panel that hosting providers install on Linux servers. It gives you buttons and forms to manage domains, files, databases, and email accounts without touching the command line.

When you create an email address like [email protected] in cPanel, it provisions a mailbox on the server, configures local delivery, and sets up an SMTP service (the protocol that sends mail). The receiving part—IMAP or POP3—works separately. If you can receive mail but not send it, the problem is almost always on the SMTP side.

Check 1: Verify your SMTP username and password

SMTP stands for Simple Mail Transfer Protocol. It's the system that pushes your message from your device to the mail server, then onward to the recipient's server.

Modern mail servers require SMTP authentication—you must log in with a username and password before the server will relay your message. If you skip this step or use the wrong credentials, the server refuses with "relay access denied" or "authentication required."

Where to find your credentials

  1. Log into cPanel.
  2. Scroll to the Email section and click Email Accounts.
  3. Find the account that won't send and click Manage (or the gear icon).
  4. Look for Mail Client Configuration or Configure Mail Client. cPanel will show the outgoing server name, port, and a reminder that the username is your full email address.

Your SMTP username is always the complete email address: [email protected], not just "you." The password is whatever you set when you created the account (or changed it to).

Configure your mail client

If you use Outlook, Thunderbird, Apple Mail, or a phone app, open the account settings and confirm:

  • Outgoing server (SMTP): usually mail.yourdomain.com or the server hostname cPanel provides.
  • Port: 587 (preferred) or 465.
  • Authentication method: Normal password (not OAuth).
  • Username: full email address.
  • Connection security: STARTTLS for port 587, SSL/TLS for port 465.

Save and test. If it works, you're done. If not, move to the next check.

Check 2: Confirm the SMTP port isn't blocked

Many residential ISPs and some corporate networks block outbound traffic on port 25 to reduce spam. Port 25 is the original SMTP port, but most hosting providers also listen on port 587 (submission) and port 465 (SMTPS).

If your client is configured for port 25 and your ISP blocks it, the connection times out. You'll see "could not connect to server" or a socket error.

Test from your machine

Open a terminal (macOS/Linux) or Command Prompt (Windows) and run:

telnet mail.yourdomain.com 587

If the port is open, you'll see a banner like:

220 mail.yourdomain.com ESMTP Exim

Type QUIT and press Enter to close. If the connection hangs or you see "Unable to connect," the port is blocked or the server isn't listening.

Switch your mail client to port 587 with STARTTLS, or try port 465 with SSL/TLS. One of those will work unless your network blocks all outbound mail ports—rare but possible on guest Wi-Fi or strict corporate LANs.

Check 3: Look at disk quota and storage limits

Every cPanel email account has a quota—how much disk space the mailbox can use. When you hit the limit, the server stops accepting new messages and may refuse to send outgoing mail until you free up space.

Log into cPanel, go to Email Accounts, and check the Usage column. If it shows 100% or a red bar, you're full.

Clear space fast

  1. Log into Webmail (cPanel homepage → Webmail icon → pick Roundcube or Horde).
  2. Delete old messages from Sent and Trash folders—those pile up silently.
  3. Empty the Trash (Roundcube: right-click Trash → Empty).
  4. Go back to cPanel Email Accounts and click Manage Disk Usage to see the updated number.

If the account is a catch-all or gets spam, consider raising the quota or setting up a forwarder instead of storing everything locally.

Check 4: Verify SPF and DKIM records exist

SPF (Sender Policy Framework) and DKIM (DomainKeys Identified Mail) are DNS records that prove your server is allowed to send mail for your domain. Without them, recipient servers may silently drop your messages or flag them as spam. You won't see an error in your client—mail just vanishes.

Check SPF

An SPF record is a TXT record in your domain's DNS zone. It lists which IP addresses or hostnames can send mail for @yourdomain.com.

Log into cPanel, go to Zone Editor (under Domains), and look for a TXT record starting with v=spf1. A basic one looks like:

v=spf1 a mx ~all

This means "allow the A record and MX records of this domain; soft-fail everything else." If you see no SPF record, add one:

  1. Click Add Record in Zone Editor.
  2. Choose TXT.
  3. Leave Name blank (or type @ if required).
  4. Paste: v=spf1 a mx ~all
  5. Save.

DNS changes take a few minutes to an hour. Test by sending an email to Gmail and checking the headers (Show Original) for "spf=pass."

Check DKIM

DKIM attaches a cryptographic signature to every outgoing message. The recipient's server fetches your public key from DNS and verifies the signature.

In cPanel, go to Email Deliverability (some versions call it Authentication).

  • If DKIM shows a red X or "Not Installed," click Manage and then Install or Enable.
  • cPanel generates a private key on the server and publishes the public key as a TXT record in DNS automatically.

Wait a few minutes, refresh, and confirm the status turns green. Send a test message and check the headers for "dkim=pass."

So what if DNS is correct but mail still bounces?

DNS records authorize your server to send. But if the server itself is misconfigured—or the remote server rejects your mail for other reasons—you need to read the logs.

Check 5: Read the mail log in cPanel

Every time cPanel tries to send a message, the mail server (usually Exim) writes a log entry. Bounce messages and temporary failures live here.

  1. In cPanel, search for Track Delivery or go to Email → Track Delivery.
  2. Enter the recipient address and pick a time range.
  3. Click Show Delivery Report.

You'll see a list of attempts. Each line shows the date, sender, recipient, and result. Click Show Details to expand the log.

Common error messages

  • relay access denied: SMTP authentication is off or wrong credentials.
  • 550 5.7.1 relaying denied: same as above.
  • SMTP error from remote mail server after MAIL FROM: 550 sender rejected: the recipient's server doesn't trust your domain (missing SPF/DKIM, or your IP is blacklisted).
  • connection timed out: the recipient's server is down or blocking your IP.
  • mailbox full or quota exceeded: the recipient's mailbox is full. Nothing you can do except contact them another way.

If the log says the message was delivered but the recipient never got it, they should check their spam folder and confirm the address is correct.

Check 6: Confirm your server IP isn't blacklisted

Spam blacklists track IP addresses that send junk mail. If your shared hosting IP ends up on a list—because another customer on the same server sent spam—some recipients will reject your legitimate mail.

Find your server's outbound IP:

  1. In cPanel, look at the left sidebar for Server Information or Stats.
  2. Note the Shared IP Address or ask your host for the outbound mail IP.

Check the IP on a few blacklist lookup tools (search "IP blacklist check" and paste the IP). If you see hits on major lists like Spamhaus or Barracuda, contact your hosting provider. They can request delisting or move you to a clean IP.

On a VPS or dedicated server where you control the IP, you'll need to submit delisting requests yourself and tighten your server's mail policies to prevent future listings.

Check 7: Test with cPanel Webmail directly

Mail client issues—wrong ports, outdated SSL libraries, buggy plugins—can look like server problems. Rule them out by sending a test message through Webmail.

  1. Log into cPanel and click Webmail.
  2. Choose Roundcube (modern interface) or Horde.
  3. Compose a message to your personal Gmail or another external address.
  4. Send.

If it arrives, the server is fine. Go back to your mail client and double-check the outgoing server, port, and authentication settings.

If Webmail also fails, check the Track Delivery log for that attempt. The error will point to a server-side issue: full disk, blacklist, DNS problem, or misconfigured Exim.

Watch for rate limits and hourly send caps

Shared hosting providers often impose per-hour or per-day send limits to prevent spam. If you send a bulk newsletter or a burst of transactional emails, the server will queue or reject messages over the limit.

In cPanel, search for Email Delivery Reports or Email Limits. Some hosts display your current usage and the cap. If you hit the limit, messages will queue and go out slowly, or you'll see a "rate limit exceeded" error in the logs.

Contact your host to raise the limit if you have legitimate bulk mail needs, or consider using a transactional email service like SendGrid or Amazon SES for high volume.

How to fix "relay access denied" step by step

This is the most common error. It means the server received your SMTP connection but refused to forward the message because you didn't authenticate (or authentication failed).

  1. Open your mail client's account settings.
  2. Navigate to Outgoing Server or SMTP.
  3. Enable My outgoing server requires authentication.
  4. Choose Use same settings as incoming server if available, or manually enter the full email address and password.
  5. Confirm the port is 587 or 465, not 25.
  6. Set encryption to STARTTLS (587) or SSL/TLS (465).
  7. Save and send a test message.

If it still fails, reset your email password in cPanel (Email Accounts → Manage → Change Password) and update the client with the new password. Typos in credentials cause 90% of relay-denied errors.

What to do when cPanel shows "sent" but the recipient never gets it

The Track Delivery log says "completed" or "delivered," yet the recipient swears they never received it.

  • Check their spam folder first. If your SPF/DKIM were missing or your IP is on a blacklist, the message may have been filed as junk.
  • Confirm the email address. A single typo sends the message to the wrong mailbox. Check the log for the exact recipient address.
  • Ask them to whitelist your domain. Some corporate mail filters are aggressive.
  • Look for a bounce in your inbox. If the recipient's server accepted the message and then rejected it (full mailbox, policy rule), you'll get a delayed bounce notification.

If none of that helps, ask the recipient to check with their IT or email admin. The message left your server successfully; the issue is on their end.

Why Webmail works but Outlook doesn't

Webmail connects from the server itself (localhost) and bypasses SMTP authentication because the connection is local. Your desktop client connects over the internet, so it must authenticate and respect firewall rules.

If Webmail works and your client doesn't, the server is healthy. The problem is client configuration—wrong port, wrong hostname, disabled authentication, or a local firewall blocking outbound SMTP.

Re-run the telnet test from your machine. If it times out, your network or ISP is blocking the port. Switch to port 587 or try from a different network (phone hotspot, coffee shop) to confirm.

Bonus: enable SMTP logging for advanced troubleshooting

If you have SSH access and basic Linux skills, you can watch the live mail log to see exactly what Exim does when you click Send.

SSH into your server and run:

tail -f /var/log/exim_mainlog

Send a test message from your client. You'll see lines like:

2026-07-22 07:04:12 1a2b3c-4d5e6f-gh SMTP connection from [192.0.2.50]
2026-07-22 07:04:13 1a2b3c-4d5e6f-gh <= [email protected]
2026-07-22 07:04:14 1a2b3c-4d5e6f-gh => [email protected] R=dnslookup T=remote_smtp
2026-07-22 07:04:14 1a2b3c-4d5e6f-gh Completed

If you see "rejected" or "authentication failed," you'll also see the reason. This level of detail isn't in the cPanel GUI, but it's the fastest way to diagnose edge cases.

Common beginner mistakes

  • Using localhost or 127.0.0.1 as the outgoing server. That tells your client to look for a mail server on your own machine, which doesn't exist. Always use mail.yourdomain.com or the hostname cPanel provides.
  • Typing the username as just "you" instead of the full email address.
  • Leaving authentication disabled in the client.
  • Setting the outgoing server to the same value as the incoming server name but forgetting to configure the outgoing port separately.
  • Assuming port 25 will work everywhere. Use 587.

Double-check these five items before opening a support ticket.

What to check first every time

Email failures feel random, but the diagnosis follows a pattern. Start with credentials and ports—those fix 70% of cases. Then check disk space and DNS records. If the problem persists, read the logs; they'll tell you whether the issue is local (authentication, port block) or remote (blacklist, recipient policy).

Test with Webmail to isolate client problems. Use Track Delivery to see the server's perspective. Once you've confirmed SMTP auth is on, port 587 is open, SPF and DKIM are green, and the disk isn't full, mail will send.

Most beginners skip one of these steps and chase ghosts. Work through the list methodically and you'll have a working setup in under 20 minutes.

FAQ

Why can I receive email but not send it?

Receiving (IMAP/POP3) and sending (SMTP) are separate services. Inbound mail doesn't require authentication from the internet; outbound does. Your SMTP credentials or port are misconfigured.

Do I need a dedicated IP to send email?

No. Shared IPs work fine if your host maintains a clean reputation and you configure SPF/DKIM. A dedicated IP helps only if you send high volume or the shared IP is blacklisted.

Can I use Gmail SMTP instead of cPanel?

Yes. Set your outgoing server to smtp.gmail.com, port 587, and use your Gmail address and an app password. Gmail will rewrite the From address to your Gmail unless you verify the custom domain in Gmail settings.

What if cPanel doesn't have Email Deliverability?

Older cPanel versions or heavily customized installs may hide it. Go to Zone Editor, manually add the SPF TXT record, and ask your host to enable DKIM via WHM (the admin panel above cPanel).

How long does DNS propagation take for SPF and DKIM?

Usually 5 to 30 minutes. Some remote servers cache DNS for an hour. If you're testing immediately, results may be inconsistent until caches expire.