To troubleshoot your webmail not receiving emails while successfully sending them from your cPanel hosted website, follow these steps systematically to identify and resolve the issue:
1. Check Email Configuration in cPanel:
MX Records: Log in to cPanel, navigate to "Zone Editor" or "MX Entry," and verify that the MX (Mail Exchanger) records point to the correct mail server. For most cPanel setups, the MX record should point to your domain (e.g., `mail.yourdomain.com`) or the server’s mail hostname provided by your hosting provider. Ensure no external MX records (e.g., pointing to Google Workspace or Zoho) are interfering unless intended.
Email Routing: In cPanel, go to "Email Routing" and ensure it’s set to "Local Mail Exchanger" unless you’re using an external mail service. If set to "Remote Mail Exchanger," emails may be directed elsewhere.
Email Account Settings: In "Email Accounts," confirm the email account exists, the password is correct, and the mailbox isn’t disabled or suspended.
2. Verify DNS Settings:
DNS Propagation: Use a tool like `whatsmydns.net` to check if your MX, A, and SPF records have propagated correctly. Incorrect or unpropagated DNS records can prevent email delivery.
SPF Record: Ensure your domain has a valid SPF (Sender Policy Framework) record in the DNS (found in "Zone Editor"). It should look like `v=spf1 +a +mx +ip4:YOUR_SERVER_IP ~all`. Replace `YOUR_SERVER_IP` with your server’s IP address. A missing or incorrect SPF record can cause emails to be rejected or marked as spam.
DKIM and DMARC: If enabled, verify DKIM (DomainKeys Identified Mail) and DMARC records in cPanel’s "Authentication" section. Misconfigured DKIM/DMARC can lead to delivery issues.
3. Check Mailbox Quota:
In cPanel’s "Email Accounts," check if the mailbox has reached its storage quota. A full mailbox will reject incoming emails. Increase the quota or delete old emails to free up space.
4. Test Email Delivery:
Send test emails from external services (e.g., Gmail, Yahoo) to your webmail address. Check the sender’s inbox for bounceback messages, which may include error codes or reasons for nondelivery (e.g., "550 Mailbox unavailable" or "Connection timed out").
Log in to webmail (via `yourdomain.com/webmail`) using Roundcube, Horde, or SquirrelMail and confirm if emails appear. Test all available webmail clients, as one may have a configuration issue.
5. Inspect Server Issues:
Mail Server Status: In cPanel, check the server status under "Service Manager" or contact your hosting provider to ensure the mail server (e.g., Exim or Postfix) is running.
Firewall/Port Issues: Ensure port 25 (SMTP), 110 (POP3), or 143 (IMAP) isn’t blocked by your server’s firewall or your hosting provider. Contact your host to confirm.
IP Blacklisting: Check if your server’s IP is blacklisted using tools like MXToolbox (`mxtoolbox.com/blacklists.aspx`). A blacklisted IP can cause email rejections. If blacklisted, follow the delisting process for each blacklist.
6. Check Spam Filters and Rules:
In webmail, check the spam/junk folder for incoming emails. If emails are being filtered, adjust spam settings in cPanel’s "Spam Filters" or webmail’s filter rules.
Ensure no email forwarding or filtering rules in cPanel’s "Forwarders" or "Filters" are redirecting or deleting incoming emails.
7. Review Mail Logs:
Access mail logs via cPanel’s "Track Delivery" or through SSH (if enabled) in `/var/log/exim_mainlog` or `/var/log/maillog`. Look for errors related to your email address, such as "user unknown," "connection refused," or "mailbox full."
If you’re unfamiliar with logs, ask your hosting provider to analyze them for delivery issues.
8. Test with an Email Client:
Configure your email account in an email client (e.g., Outlook, Thunderbird) using IMAP/POP3 settings provided in cPanel’s "Email Accounts" > "Set Up Mail Client." Test if emails are received there. Incorrect client settings (e.g., wrong incoming server or port) could mimic a server issue.
9. Contact Hosting Provider:
If the above steps don’t resolve the issue, contact your hosting provider with details: the email address, domain, when the issue started, and any error messages. They can check serverside issues like mail service failures, misconfigurations, or network problems.
10. Additional Checks:
Domain Suspension: Ensure your domain or hosting account isn’t suspended or expired, as this can disable email services.
ThirdParty Services: If you recently switched to or from an external email service (e.g., Google Workspace), ensure all settings are updated, and old MX records are removed.
Test Alternate Email: Create a new email account in cPanel and test sending/receiving to rule out issues specific to the original account.
Most hosting server do not automatically set this. It took me a while to figure this out myself. With this, you don’t need any additional email service for your custom email.