Back to BlogEmail Hosting

Why Your Business Email Is Landing in Spam and How to Fix It

Learn why your business emails are flagged as spam and follow a step‑by‑step guide to configure SPF, DKIM, DMARC and DNS for reliable email delivery.

O
One MegaByte Team
January 5, 2026
6 min read

Introduction

Email is still the backbone of corporate communication, yet many organizations discover that their legitimate messages are being tossed into recipients’ spam folders. The root cause is almost always a mis‑configured email‑hosting environment rather than a faulty mail client. In this article we’ll diagnose the most common reasons why outbound mail is marked as spam and provide a problem‑solution roadmap that includes DNS record setup, authentication protocols, and ongoing monitoring.

Key takeaway: Proper SPF, DKIM, and DMARC records, combined with correct reverse DNS (PTR) and reputation management, eliminate the majority of spam‑filter failures.


The Problem: Emails Going Straight to Spam

When users report that “my email never reaches the inbox,” the typical symptoms are:

  1. High bounce rates from major providers (Gmail, Outlook, Yahoo).
  2. Spam folder placement even for plain‑text messages.
  3. No‑reply or auto‑reply loops indicating the provider rejected the message.
  4. Black‑list warnings in mail‑server logs.

These issues stem from a lack of trust between the sending domain and the receiving mail server. Modern spam filters evaluate email authentication, IP reputation, and content quality. If any of these signals are missing or contradictory, the filter assumes the message is suspicious.


Understanding Email Authentication

Three standards form the foundation of email trust:

  • SPF (Sender Policy Framework) – declares which IP addresses are authorized to send mail for your domain.
  • DKIM (DomainKeys Identified Mail) – adds a cryptographic signature to each message, proving it wasn’t altered in transit.
  • DMARC (Domain-based Message Authentication, Reporting & Conformance) – tells receivers how to handle messages that fail SPF/DKIM and provides reporting.

If any of these are absent or mis‑configured, spam filters will downgrade your reputation.


Step 1: Verify and Publish an SPF Record

Why SPF Matters

SPF lets receiving servers check that the sending IP belongs to an authorized list. A missing or overly permissive SPF record can cause “soft fail” results, which many providers treat as spam.

How to Create a Correct SPF Record

  1. Gather all sending sources – your mail server, third‑party services (Mailchimp, SendGrid, Salesforce), and any on‑premise appliances.
  2. Build the TXT record using the v=spf1 syntax.
  3. Publish the record in your DNS zone.

Example SPF TXT Record

example.com. IN TXT "v=spf1 ip4:203.0.113.10 ip4:198.51.100.0/24 include:_spf.google.com -all"
  • ip4:203.0.113.10 – your primary mail server.
  • ip4:198.51.100.0/24 – a range used by a marketing platform.
  • include:_spf.google.com – authorizes Google Workspace.
  • -all – hard fail for any unauthorized source (recommended for strict security).

Testing SPF

Run a DNS query from the command line:

nslookup -type=TXT example.com

Or use an online validator like MXToolbox SPF Lookup.


Step 2: Set Up DKIM Signing

What DKIM Does

DKIM attaches a digital signature to the Message‑ID header. The receiving server uses the public key stored in DNS to verify the signature, ensuring the message wasn’t tampered with.

Generating DKIM Keys

Most modern mail servers (Postfix, Exchange, Microsoft 365) can generate keys automatically. Below is a generic OpenSSL command for a self‑hosted Postfix server:

# Generate a 2048‑bit private key
openssl genrsa -out /etc/opendkim/keys/example.com.private 2048

# Derive the public key
openssl rsa -in /etc/opendkim/keys/example.com.private -pubout -out /etc/opendkim/keys/example.com.txt

Copy the contents of example.com.txt (the p= value) into a DNS TXT record.

DKIM DNS TXT Record Example

default._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqh...AB"
  • default is the selector; you can name it anything (e.g., mail2026).
  • Ensure the selector used in the mail server matches the DNS entry.

Enabling DKIM in Postfix (with OpenDKIM)

# /etc/opendkim.conf
Domain                  example.com
KeyFile                 /etc/opendkim/keys/example.com.private
Selector                default
Socket                  inet:12301@localhost

# Add to Postfix main.cf
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301

Restart both services:

systemctl restart opendkim postfix

Step 3: Implement DMARC for Policy & Reporting

Why DMARC Completes the Trust Chain

DMARC tells receivers what to do when SPF or DKIM fails (none, quarantine, reject) and provides aggregate reports so you can monitor abuse.

Crafting a DMARC Record

A basic, monitoring‑first policy looks like this:

_dmarc.example.com. IN TXT "v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1"
  • p=none – only collect data, don’t affect delivery.
  • rua – aggregate report destination (XML daily).
  • ruf – forensic reports for individual failures.
  • fo=1 – send reports if either SPF or DKIM fails.

After a week of clean reports, tighten the policy:

_dmarc.example.com. IN TXT "v=DMARC1; p=quarantine; pct=100; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1"

Eventually move to p=reject for full protection.

Verifying DMARC

Use DMARC Analyzer or Postmark DMARC Check to confirm the record is visible and correctly formatted.


Step 4: Check DNS Propagation, Reverse DNS (PTR), and IP Reputation

Reverse DNS (PTR) Must Match Your HELO Domain

Many providers reject mail if the sending IP’s PTR record does not resolve to the domain used in the SMTP HELO/EHLO command.

How to Verify PTR

dig -x 203.0.113.10 +short

The result should be something like mail.example.com.. If not, contact your ISP or cloud provider to set the PTR.

DNS Propagation

After updating SPF/DKIM/DMARC, allow up to 48 hours for global DNS caches to refresh. Use dig with the @8.8.8.8 resolver to bypass local caches:

dig TXT example.com @8.8.8.8

IP Reputation

If you’re on a shared hosting IP, check reputation with Sender Score or Talos Intelligence. A poor score may require moving to a dedicated IP or using a reputable ESP (e.g., SendGrid).


Bonus: Monitoring and Ongoing Maintenance

  1. Automated SPF/DKIM Checks – Tools like OpenDMARC can parse inbound DMARC reports and alert on failures.
  2. Regular Audits – Quarterly review of DNS records to remove stale include: statements.
  3. Feedback Loops – Sign up for ISP‑specific complaint loops (e.g., Gmail’s Postmaster Tools) to react to user spam complaints.
  4. Content Hygiene – Avoid spam‑trigger words, use proper MIME boundaries, and always include a plain‑text alternative.

Conclusion

A mis‑configured email‑hosting environment is the single biggest factor causing legitimate business mail to be classified as spam. By systematically implementing SPF, DKIM, and DMARC, verifying reverse DNS, and monitoring reputation, you restore trust with major inbox providers and ensure your messages land where they belong – the inbox.

Next steps: Deploy the DNS records shown above, run the validation commands, and monitor DMARC reports for at least seven days before tightening the policy. Once you see a clean report, switch p=none to p=quarantine and eventually to p=reject for full protection.

With these steps, One MegaByte’s clients can enjoy reliable, secure email delivery without the headache of spam‑folder surprises.

Email HostingProblem SolvingTutorial