Plesk Email Not Sending? 7 Fixes That Actually Work

Priya

Content Writer & Researcher

Last Updated: 25 October 2026
Plesk Email Not Sending? 7 Fixes That Actually Work
🖥️

Plesk Email Not Delivering? Our Team Fixes It Fast

CloudHouse's managed Plesk support team diagnoses email delivery failures — from blacklisted IPs to broken DKIM — and fixes them before your clients notice. Get help today.

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

When Plesk email stops sending, the diagnostic path matters more than the fix. The same symptom — "email not sending" — can be caused by a blocked SMTP port, a blacklisted IP, a misconfigured DKIM record, or a broken Postfix queue. Each has a completely different fix. This guide covers every major cause of Plesk email delivery failure, with the exact commands and Plesk panel settings to resolve each one.

Step 1: Identify Where the Failure Is Happening

Before changing any settings, determine which layer of the email stack is failing. Plesk email delivery involves four stages, and the fix depends on which stage breaks:

  • Stage 1: Application to mail server — PHP mail(), SMTP authentication from a web app, or Plesk webmail
  • Stage 2: Postfix/Qmail queue — the local mail server accepts the message and attempts delivery
  • Stage 3: Remote delivery — your server connects to the recipient's mail server on port 25
  • Stage 4: Authentication and reputation — SPF, DKIM, DMARC checks at the recipient end

Check the mail log first to see exactly where messages are stopping:

# Plesk uses Postfix — check the mail log
tail -100 /var/log/maillog | grep -E "status=|reject:|warning:"

# Or on Ubuntu-based Plesk servers
tail -100 /var/log/mail.log | grep -E "status=|reject:|warning:"

The log entry for each message will show status=sent, status=deferred, or status=bounced along with the exact error reason.

💡 None of these worked? Skip the guesswork.

Get Expert Help →

Fix 1: Port 25 Blocked — Switch to Submission Port 587

Most VPS and cloud providers block outbound port 25 by default to prevent spam. This is the most common cause of Plesk email not reaching recipients.

1Verify port 25 is blocked on your server
telnet smtp.gmail.com 25

If this hangs or returns "Connection refused," your provider blocks port 25.

2Configure Postfix to use port 587 for outbound delivery

In Plesk → Tools and Settings → Mail Server Settings, enable Use SMTP relay and enter your SMTP relay provider details (SendGrid, Mailgun, Amazon SES, or your ISP's relay). This routes outbound mail through an allowed relay server instead of direct port 25.

3Set up SMTP relay in Postfix directly
# Edit /etc/postfix/main.cf
relayhost = [smtp.sendgrid.net]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt

# Create /etc/postfix/sasl_passwd
[smtp.sendgrid.net]:587 apikey:YOUR_SENDGRID_API_KEY

# Apply
postmap /etc/postfix/sasl_passwd
systemctl reload postfix
1Check your IP against major blacklists

Run your server's outbound IP through:

  • MXToolbox Blacklist Check: mxtoolbox.com/blacklists.aspx
  • Spamhaus Lookup: check.spamhaus.org
  • Barracuda Reputation: www.barracudacentral.org/lookups

Your server IP is found with: curl -s ifconfig.me

2Request delisting

Each blacklist has a delisting form. For Spamhaus, visit their delisting portal. For Barracuda, submit a request at barracudacentral.org. Delist from all blacklists before changing anything else — or the problem will recur.

3Find and stop the spam source on your Plesk server
# Check mail queue for abnormal volume
postqueue -p | wc -l

# See which accounts are sending the most mail
postqueue -p | grep "^[A-Z0-9]" | awk '{print $7}' | sort | uniq -c | sort -rn | head -20

# Find PHP scripts generating mail
grep "X-PHP-Originating-Script" /var/log/maillog | awk '{print $NF}' | sort | uniq -c | sort -rn | head -10
1Check your current SPF record
dig TXT yourdomain.com | grep spf

A correct SPF record looks like: v=spf1 ip4:YOUR_SERVER_IP include:sendgrid.net ~all

2Create or fix the SPF record in Plesk

In Plesk → Domains → your domain → DNS Settings, add a TXT record:

Name: @
Type: TXT
Value: v=spf1 ip4:YOUR_SERVER_IP mx ~all

Replace YOUR_SERVER_IP with your server's outbound IP. The ~all (softfail) is recommended over -all (hardfail) during initial setup to avoid blocking legitimate mail.

3Enable SPF checking in Plesk's mail server

In Plesk → Tools and Settings → Mail Server Settings → SPF, enable SPF checking for incoming mail to protect your server from being used as a relay for forged sender addresses.

1Enable DKIM in Plesk

In Plesk → Tools and Settings → Mail Server Settings, enable Use DKIM spam protection system to sign outgoing email messages. Plesk will generate DKIM keys automatically.

2Verify the DKIM DNS record was added
dig TXT default._domainkey.yourdomain.com

You should see a long p= public key string. If nothing returns, add the DKIM record manually in Plesk → Domains → DNS Settings.

3Test DKIM signing is working

Send a test email to check-auth@verifier.port25.com — you will receive an automated reply showing whether DKIM pass, SPF pass, and DMARC pass.

1Check queue size and state
postqueue -p | tail -5

If you see hundreds of deferred messages, the queue is stuck.

2Flush the queue to retry all deferred messages immediately
postqueue -f
3Restart Postfix if flush does not help
systemctl restart postfix
postqueue -p  # Check queue again
4Delete a stuck queue if it contains spam
# Delete all deferred messages (use with caution)
postsuper -d ALL deferred

# Delete messages from a specific sender
postqueue -p | grep "sender@domain.com" |   awk '{print $1}' | tr -d '!' |   xargs -I{} postsuper -d {}
1Verify PHP mail() is enabled in Plesk

In Plesk → Domains → your domain → PHP Settings, ensure disable_functions does not include mail.

2Test PHP mail() directly via SSH
php -r "mail('test@youremail.com','Test','Body','From: test@yourdomain.com'); echo 'sent';"
tail -20 /var/log/maillog  # Check if it hit Postfix
3Use SMTP authentication from WordPress instead of PHP mail()

PHP mail() has no authentication and is increasingly blocked by receiving servers. Use a plugin like WP Mail SMTP with your mail server's SMTP credentials:

  • SMTP Host: your-plesk-server-ip or mail.yourdomain.com
  • SMTP Port: 587
  • Encryption: TLS
  • Username: full email address (e.g., noreply@yourdomain.com)
  • Password: the email account password in Plesk
1Check your current PTR record
dig -x YOUR_SERVER_IP +short

The result should resolve to a hostname that forward-resolves back to your IP.

2Set PTR record via your hosting provider

PTR records are set by whoever controls your IP block — your VPS provider or data centre, not your domain registrar. Log in to your provider's control panel (Vultr, DigitalOcean, Linode, etc.) and set the Reverse DNS / PTR to match your server's main hostname (e.g., mail.yourdomain.com).

When Plesk Email Needs Professional Intervention

Some Plesk email delivery problems require infrastructure-level fixes that go beyond panel settings:

  • Persistent IP blacklisting — means a compromised account is still sending spam; requires server-wide audit and account isolation
  • DMARC enforcement failures — require coordinating SPF, DKIM, and DNS across multiple sending sources
  • Mail server performance issues — high queue volumes, slow delivery, or memory exhaustion from Postfix require kernel and Postfix tuning
  • Migrating from Qmail to Postfix in Plesk — a major configuration change that needs careful execution to avoid data loss

Our managed Plesk support team at CloudHouse Technologies diagnoses and fixes email delivery issues for hosting companies running Plesk servers worldwide. If your clients are reporting emails going to spam or not arriving at all, we can audit your entire email stack and get delivery working reliably.

Plesk email delivery failures almost always leave a clear trace in the mail log — the key is knowing which log entry to look for and matching it to the right fix. Start with port 25 availability, check for IP blacklisting, and verify SPF and DKIM are properly configured. These three fixes resolve over 80% of Plesk email delivery issues. For the remaining cases involving infrastructure-level problems, CloudHouse's Plesk support specialists are available to step in.

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

The most common causes are missing or incorrect SPF and DKIM records, a server IP that is partially blacklisted, or the absence of a PTR (reverse DNS) record. Check your SPF with: dig TXT yourdomain.com | grep spf. Test DKIM by sending an email to check-auth@verifier.port25.com. All three authentication layers (SPF, DKIM, DMARC) need to pass for reliable inbox delivery.

Need this done for you?

Server Management Service

Managed Linux and Windows servers: monitoring, patching, security and 24/7 support.

Learn more

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...