Deliverability

Transactional email deliverability, set up properly.

Transactional email deliverability starts with proving the mail is yours. With tinyRelay you sign your domain with one DKIM CNAME, validate DKIM and SPF through an API call, send one-click unsubscribe headers and get a reason with every bounce.

DOMAIN CHECKPUT /domain/dns/check
Sending domain
_
Run check
DKIMCNAMENot checked
tec1._domainkey → tec1.dkim.tinyemail.com
SPFTXTNot checked
@ → v=spf1 include:_spf.tinyemail.com … -all
DMARCTXTRecommended
_dmarc → v=DMARC1; p=none; …

Illustrative: this sample check does not query DNS.

Try it · type your domain

The records your domain needs.

Type the domain you send from. The records on the right update as you type, ready to copy into your DNS provider.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
DKIMCNAME at tec1._domainkeyNot checked
SPFTXT at the rootNot checked
PUT /domain/dns/checkRun sample check

Illustrative: this sample check does not query DNS. For a real public lookup, use the SPF, DKIM and DMARC checker.

DKIM · requiredCNAME
Host tec1._domainkey.yourdomain.com
Value tec1.dkim.tinyemail.com

Signs mail from this domain. This is the record from the tinyRelay setup docs.

SPF · validatedTXT
Host yourdomain.com
Value v=spf1 include:_spf.tinyemail.com … -all

Example only. Keep one SPF record and add the include to it; the DNS check returns the exact record it expects.

DMARC · recommendedTXT
Host _dmarc.yourdomain.com
Value v=DMARC1; p=none; …

Start with p=none to monitor, then tighten the policy once reports look clean.

DNS validation

An SPF and DKIM check API.

Before your first send, ask tinyRelay whether a domain is ready. One PUT request validates DKIM and SPF and returns the records it expects to find.

  • Status per record: Valid or Invalid
  • The expected type, name and value for each record
  • Run it from a deploy script or a setup screen in your app

Read the Validate DKIM and SPF reference for the full schema.

curl -X PUT "https://api.tinyemail.com/v1/relay/domain/dns/check" \
  -H "X-RELAY-ACCESS-TOKEN: $TINYRELAY_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "domain": "acme.com" }'
{
  "dkim": {
    "status": "Invalid",
    "dns": [
      { "type": "CNAME", "name": "tec1._domainkey.", "value": "tec1.dkim.tinyemail.com" }
    ]
  },
  "spf": {
    "status": "Valid",
    "dns": [
      { "type": "TXT", "name": "@", "value": "\"v=spf1 include:_spf.google.com include:_spf.tinyemail.com include:spf.autopilothq.com include:one.zoho.com -all\"" }
    ]
  }
}

Response is the docs example. Base URL from current site samples; confirm in the docs.

Headers and tracking

One-click unsubscribe and tracking, under your control.

Two per-request choices that affect how receivers and recipients see your mail.

RFC 8058 one-click unsubscribe

Send both headers in the request's headers object. Your List-Unsubscribe URL must accept a POST. Header names are case-sensitive, and sending one without the other advertises something the other does not back.

"headers": {
  "List-Unsubscribe": "<https://acme.com/unsubscribe/u_1042>",
  "List-Unsubscribe-Post": "List-Unsubscribe=One-Click"
}

Supplying List-Unsubscribe replaces the default unsubscribe header tinyRelay would otherwise generate. One-click unsubscribe guide.

Tracking and link wrapping

Open and click tracking are on by default. One field turns both off for a whole request, and one header changes how tracked links look.

disableTrackingLinks: true
No link rewriting, no open pixel. Applies to the whole request; cannot be set per recipient.
X-Link-Wrapping: true
Tracked links hide the destination in an opaque, tamper-proof token, keeping URLs out of view of blocklist scanners. Off unless sent.
TRY IT · A TRACKED LINKillustrative
Open + click tracking
Link wrapping

See both in the transactional email API →
Who runs it

The same team that runs tinyEmail.

tinyRelay sends on the email delivery infrastructure behind tinyEmail. The same team looks after deliverability management, sender authentication, ISP relationships and reputation for both.

Deliverability management
Sender authentication
ISP relationships
Reputation
How tinyEmail and tinyRelay fit together →
What we will not tell you. We do not publish inbox placement rates or promise that every message reaches the inbox. The receiving provider makes that call. What we can do is give you correct authentication, clear bounce reasons and the controls above, so problems are visible and fixable.
FAQ

Deliverability questions.

Honest answers, including the ones that start with no.

Bounce categories docs →
Does tinyRelay guarantee inbox placement?

No, and no sender can. The receiving mailbox provider decides where a message lands. What tinyRelay gives you is DKIM signing for your domain, a DNS check endpoint, one-click unsubscribe headers and a bounce category on every BOUNCED event, so you can find and fix problems quickly.

Add one CNAME record: tec1._domainkey.yourdomain.com pointing to tec1.dkim.tinyemail.com. Then validate it with PUT /domain/dns/check.

The DNS check endpoint validates SPF for your domain and returns the records it expects. The example SPF record in the docs lists include:_spf.tinyemail.com alongside other senders. Keep one SPF record per domain.

The docs tell you to add hard-bounced addresses to your own suppression list. If you need to know whether tinyRelay also suppresses them on its side, ask our team.

You can turn tracking off for them. Set disableTrackingLinks to true and the request gets no link rewriting and no open pixel.

Get started

Send transactional email with a service that reports back.

SMTP relay or REST API, standalone or alongside tinyEmail. Tell us what you send and our team sets you up.