hatang.dev

Keep your email out of spam

Why email lands in spam or Promotions and how to fix it, with SPF, DKIM and DMARC, a careful start on a new domain, clean lists and the numbers to watch.

Updated on

On this page

Whether an email reaches the inbox is decided by the receiving mailbox provider (Gmail, Outlook, Yahoo, iCloud), not by Ha Tang. They look at three things: is the email really from you (authentication), do people want it (opens, replies, complaints, bounces), and how you have behaved over time (reputation). Ha Tang sets up the first for you once your domain is verified. The other two depend on what you send and to whom.

Why email goes to spam, and what to do

Symptom Likely cause What to do
Everything goes to spam, even order confirmations The sending domain is not verified, or you send from a domain other than the verified one Check Email → Domains: the domain must be Verified, and the sender address must be on exactly that domain. See Add and verify a sending domain
Gmail shows "via amazonses.com" or a warning banner The DKIM record is missing or changed Re-check the DKIM row on the domain page and paste the value again
A new domain lands in spam for its first sends No reputation yet Warm the domain up (below)
Marketing email lands in spam, order email does not Low engagement or complaints on marketing Send marketing from its own subdomain, clean the list, offer topics, send less often to inactive people
Spam only after one big campaign An old or bought list, many bounces and complaints Check Metrics; stop mailing that list; send only to people who agreed
Gmail puts it under Promotions Gmail's classification of marketing email This is not spam; it is normal for newsletters. Plain, personal-looking email lands there less often
Some receivers reject the email outright Your domain's DMARC is strict and another service sends as you without passing SPF or DKIM Read your DMARC reports and fix the other service, or relax the policy while you do

1. Authentication: SPF, DKIM and DMARC

Gmail and Yahoo require every bulk sender to authenticate with SPF and DKIM and to publish DMARC. With Ha Tang:

  • DKIM: every email is signed with your domain's own key (the DKIM record).
  • SPF: the bounce address is on your send. subdomain, authorised by the SPF record there. It aligns with your sender domain, so you do not need to touch the SPF record of your main domain.
  • DMARC: Ha Tang proposes v=DMARC1; p=none;, which only monitors. Publish it; it does not block anything.

Tighten DMARC step by step

p=none lets anyone still send email pretending to be you. Once you know all your real email passes, move to a stricter policy:

  1. Add a report address: v=DMARC1; p=none; rua=mailto:[email protected]. You receive daily reports from Gmail and others; read them with a DMARC report tool.
  2. When the reports show that every service sending as your domain passes (Ha Tang, your office mailboxes, your invoicing tool, your CRM), change to p=quarantine; pct=25, then p=quarantine.
  3. Finally p=reject.

Publish one DMARC record at a time, on _dmarc. of the domain.

2. Start slowly on a new domain

A domain or subdomain that has never sent email has no reputation. Mailbox providers watch its first weeks closely.

  1. Start with your most engaged recipients: recent customers and people who signed up recently.
  2. Start small and grow gradually, for example doubling the volume every few days while bounces and complaints stay low.
  3. Keep a steady rhythm. Long silences followed by a large burst look like spam.
  4. Check Email → Metrics after each step and slow down if bounces or complaints rise.

The Daily quota under Email → Email settings also protects you from a sudden spike, for example a broadcast sent to the wrong segment.

3. Keep your lists clean

  • Only email people who agreed. Never buy, rent or scrape lists. A confirmation email at signup keeps typos and fake addresses out.
  • Let bounces and complaints suppress. Ha Tang does it automatically. Do not remove those entries without a good reason. See Suppressions and bounces.
  • Offer topics. People who can choose "fewer promotions" complain less. See Segments and topics.
  • Stop mailing inactive people. Contacts who have not opened anything for months drag your engagement down. Ask them once whether they want to stay, then stop.
  • Make unsubscribing easy. Put the {{{UNSUBSCRIBE_URL}}} link in every marketing email. Ha Tang also adds the one-click unsubscribe that Gmail and Yahoo require.

4. Separate your streams

Send different kinds of email from different domains, so one cannot hurt the other:

Kind of email Example sender
Order confirmations, invoices, password resets [email protected] or @notify.mochuong.vn
Newsletters and promotions [email protected]

Each domain you add has its own DKIM key and reputation, and Metrics can be filtered per domain.

5. Write email that looks like you

  • A recognisable sender name and a stable address: Mộc Hương Tea <[email protected]>.
  • A plain-text version next to the HTML (templates create it for you).
  • Links to your own website; with click tracking, a tracking subdomain so tracked links use your domain too. Avoid public link shorteners.
  • No attachments in marketing email; link to the file instead.
  • A Reply-To that someone reads. Replies are a strong positive signal.
  • An honest subject, without all capitals or long rows of emoji.

Numbers to watch

Signal Where Watch for
Bounce rate Email → Metrics Above 4%, Gmail and Yahoo start throttling or junking your email. A sudden jump usually means an old or bought list
Complaint rate Email → Metrics Above 0.08% is risky. Check how people joined and how easy it is to unsubscribe
Rejections for policy or content The email's events under Email → Emails Receivers are blocking your content or reputation
Domain reputation at Gmail Google Postmaster Tools Gmail's view of your spam rate and reputation
DMARC reports The rua address of your DMARC record Services sending as you that fail, or that you do not know

In an emergency

If a broadcast went to the wrong people or something sends email in a loop, open Email → Email settings and click Pause (with a reason if you like). Every send from your website, the SMTP relay, broadcasts and automations is refused at once until you click Resume sending.

Checklist

  • The domain is Verified, with DKIM, MX and SPF; a DMARC record is published.
  • Marketing and order email come from different domains or subdomains.
  • Every marketing email has a visible unsubscribe link.
  • Lists only hold people who agreed, and inactive contacts are pruned.
  • Bounce and complaint rates are checked after each large send.

More technical detail is in the deliverability guide of the developer hub.

Was this article helpful?

Related articles

Not finding what you are looking for?

Our team answers in the chat, in English or Vietnamese.

Send us an email

Building with the API or SDKs? See the developer hub →