When email isn't working, the issue could be with sending, receiving, configuration, or DNS records. Follow this checklist to isolate the problem.
Step 1: Verify your email account exists and is active
- Log in to your hosting control panel and verify:
- Your email account is listed under "Email Accounts" or "Mail"
- The account is not suspended or disabled
- Your disk space quota is not full (check "Disk Usage")
- Your password is correct (try logging in via webmail)
Step 2: Test your email via webmail
Webmail (like Roundcube, Horde, or SquirrelMail) uses the same underlying mail server, so it tests if the service is running:
1. Log in to your hosting control panel
2. Click "Webmail" (or find "Email" → "Access Webmail")
3. Enter your full email address (user@yourdomain.com) and password
4. Check if you can log in:
- Yes: Your email service is running. The issue is with your email client (Outlook, Apple Mail, etc.)
- No: The issue is server-side or the account doesn't exist
If webmail works
Your server is fine. Check your email client setup:
- Verify incoming (IMAP/POP3) server settings:
- Server: mail.yourdomain.com (or ask your hosting provider)
- Port: 993 (IMAP, secure) or 995 (POP3, secure)
- Security: SSL/TLS
- Username: your full email address (user@yourdomain.com)
- Password: your email password
- Verify outgoing (SMTP) server settings:
- Server: mail.yourdomain.com (or your hosting provider's SMTP server)
- Port: 465 (secure) or 587 (TLS)
- Security: SSL/TLS or STARTTLS
- Username: your full email address (user@yourdomain.com)
- Password: your email password
- Enable authentication: Yes
- Test the connection: In most email clients (Outlook, Thunderbird, Apple Mail), there's a "Test Settings" or "Check" button. Use it.
If webmail doesn't work
Your email service may be down or misconfigured. Continue to Step 3.
Step 3: Check your MX records (incoming mail)
MX (Mail eXchange) records tell the world where your email should be delivered. If they're missing or wrong, incoming mail bounces.
Use an online MX checker like MXToolbox:
- Enter your domain (yourdomain.com)
- Click "MX Lookup"
- You should see MX records, for example:
yourdomain.com MX 10 mail.yourdomain.com
yourdomain.com MX 20 mail2.yourdomain.com (backup)
Expected result: At least one MX record pointing to your hosting provider's mail server.
If no MX records appear:
1. Log in to your hosting control panel
2. Go to "DNS" or "Zone Editor"
3. Create an MX record:
- Name: @ (for your root domain)
- Type: MX
- Priority: 10 (or ask your hosting provider for the correct value)
- Value: mail.yourdomain.com (or your hosting provider's mail server)
- Save and wait 24 hours for the change to propagate
If an MX record exists but points to the wrong server:
- Edit the MX record in your control panel
- Change the value to your correct mail server
- Wait 24 hours for propagation
Step 4: Check your SPF record (outgoing mail authentication)
SPF (Sender Policy Framework) helps prevent spam and email spoofing. Without it, your emails may be marked as spam or rejected.
Check your SPF record using MXToolbox SPF Lookup:
- Enter your domain
- Click "SPF Record Lookup"
Expected result: An SPF record like:
v=spf1 include:mail.yourdomain.com ~all
or
v=spf1 ip4:192.0.2.1 ~all
If no SPF record exists:
1. Log in to your hosting control panel
2. Go to "DNS" or "Zone Editor"
3. Create a TXT record (NOT MX):
- Name: @ (your root domain)
- Type: TXT
- Value: v=spf1 include:yourdomain.com ~all (ask your hosting provider for the exact include value)
Example SPF records:
v=spf1 ip4:192.0.2.1 ~all
# (if your hosting provider gave you an IP)
v=spf1 include:sendgrid.net ~all
# (if you use SendGrid for sending)
v=spf1 include:mail.yourhosting.com include:sendgrid.net ~all
# (multiple providers)
Ask your hosting provider for the correct SPF include value.
Step 5: Check your DKIM and DMARC records (advanced)
DKIM and DMARC are advanced authentication methods that further prevent spoofing and spam filtering:
DKIM (optional but recommended):
If your hosting provider provides a DKIM key, add it as a TXT record:
Name: default._domainkey
Type: TXT
Value: v=DKIM1; k=rsa; p=MIGfMA0BgkqhkiG9w0BA... [very long key]
Ask your hosting provider if they auto-generate DKIM keys, or help you set one up.
DMARC (optional):
DMARC tells email providers what to do if an email fails SPF or DKIM:
Name: _dmarc
Type: TXT
Value: v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com
Start with p=none to monitor without rejecting mail, then switch to p=quarantine or p=reject later.
Step 6: Check for common delivery issues
Email sends but goes to spam
- SPF, DKIM, and DMARC records are missing → Add them (see Steps 4–5)
- Old IP with bad reputation → Ask your hosting provider about the mail server's IP reputation
- Subject line has spam keywords → Avoid phrases like "URGENT!!!", "$$$ MONEY $$$", etc.
- Too many recipients → Large bulk sends may be filtered; use a proper mailing service
Email bounces with "User unknown" or "Invalid recipient"
- The recipient email address is typo'd → Check the spelling
- The recipient's mailbox is full → They need to delete old emails
- The recipient's server is rejecting your domain → Could be spam filtering or an SPF/DKIM issue on your end
Email is stuck in the "Outbox"
- Your email client can't reach the SMTP server → Verify server, port, and username in Settings
- Your SMTP port is blocked → Port 587 (TLS) usually works everywhere; try it instead of 465
- Firewall or ISP blocking SMTP → Contact your ISP or try a different network
- Wrong SMTP credentials → Verify your full email address and password
Can receive but can't send
- SMTP server is down → Check webmail; if webmail works, your client settings are wrong
- SMTP requires authentication → Verify you're using your full email address, not just username
- SMTP is blocked by firewall → Try port 587 instead of 465; use STARTTLS instead of SSL
Step 7: Restart services or contact your hosting provider
If the above steps don't fix the issue:
1. Ask your hosting provider to restart the mail service:
```
systemctl restart postfix
# or your provider's mail service
```
2. Provide them with:
- Your email address
- Whether the issue is sending or receiving
- Your email client settings (server, port, security type)
- Any error messages you see
- Whether webmail works
Common errors and meanings
| Error | Meaning | Fix |
|-------|---------|-----|
| "User unknown" | Recipient email doesn't exist | Check spelling, verify recipient email |
| "Relay access denied" | SMTP authentication failed | Verify username/password, use full email address |
| "Connection timed out" | Can't reach the mail server | Check server name, port; verify firewall allows SMTP |
| "SSL: CERTIFICATEVERIFYFAILED" | Server certificate issue | Disable certificate verification (temporary), contact provider |
| "Too many authentication failures" | Account locked after wrong password attempts | Wait 30 min, then retry with correct password |
| "552: Message exceeds max size" | Email with attachments is too large | Check max message size in hosting panel; compress files |
Email checklist for a new domain
When setting up a new domain, make sure you've completed:
- [ ] MX record points to your hosting provider's mail server
- [ ] Email account created in hosting control panel
- [ ] Email client (Outlook, Apple Mail, etc.) configured with correct server/port/username/password
- [ ] Test send/receive via webmail first
- [ ] SPF record added to DNS
- [ ] DKIM record added (if provider supplies one)
- [ ] DMARC record added (optional, start with p=none)