Spam placement is almost never about the words in the message. It is about whether the receiving server can prove the mail came from you. Three DNS records do that proving, and a missing one is enough on its own.

1. SPF - who is allowed to send

One TXT record on the domain, listing every server that sends mail as you. One record only: two SPF records is the same as none, because the receiver cannot choose.

v=spf1 include:_spf.egphp.com ~all
If you also send from a newsletter service or a CRM, their include goes in the SAME record, not a second one.

2. DKIM - a signature on every message

A key pair. The private half signs outgoing mail; the public half is a TXT record the receiver reads to check the signature. EGPNL generates the pair and shows you the record to publish.

  1. Open Mail in EGPNL — Choose the domain, then DKIM.
  2. Copy the record — It is long. Copy the whole value, including the quotes if your DNS host needs them.
  3. Publish it — Host name is usually default._domainkey.
  4. Wait, then verify — DNS takes up to an hour. The panel goes green when the record is visible from outside.

3. DMARC - what to do when a check fails

SPF and DKIM decide; DMARC says what happens when they say no, and asks receivers to report back. Start at none so you can read the reports without losing mail.

v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com

Read the reports for two weeks. When every legitimate sender passes, move to quarantine, and later to reject.

Check it from outside, not from the panel

Send one message to a Gmail address you own, open it, and use Show original. It prints SPF, DKIM and DMARC as PASS or FAIL, from the receiver's point of view - which is the only point of view that matters.

A brand new domain has no sending history, and history counts. Send a little for the first fortnight and let it build; a thousand messages on day one from a domain nobody has seen looks exactly like a spammer.