Deliverability
Deliverability is the sum of every choice a receiving server sees: DNS
records, authentication, address hygiene, and message quality. relay manages
the infrastructure of all four. You focus on content and your recipient list.
This page explains what relay does and why each piece matters for the
receiver’s decision.
The record set relay manages
relay runs its own authoritative nameserver. For a delegated domain, for
example acme.com, you deploy the delegation and add DMARC, and relay serves
the rest. The dashboard lists the exact records, and its checks confirm each
one:
| Check | Where relay looks | What it wants to see |
|---|---|---|
| NS delegation | mail.relay.acme.com |
NS records to the relay nameservers |
| SPF | root and sender subdomain TXT | a record that authorizes each relay sending IP |
| DKIM | two CNAME records | {selector}._domainkey pointing into the relay zone |
| DMARC | _dmarc.acme.com TXT |
v=DMARC1 with reporting to the relay collector |
| MTA-STS | _mta-sts TXT and mta-sts CNAME |
v=STSv1 record and relay policy host |
| TLS-RPT | _smtp._tls TXT |
reporting to the relay TLS collector |
Four public-key selectors, two per domain (RSA-2048 and Ed25519),
sign every message with h=sha256. Both algorithms ride on every
outgoing message, so receivers that cannot read Ed25519 names yet still
find an RSA signature they accept.
Your message carries one more identity besides your domain keys. relay
cosigns customers’ messages with the keys of the platform domain. The cosign
carries the platform domain’s name, so a receiver can tell the platform
apart from your domain. Your domain signatures and the cosign cover the same
headers: From, To, Subject, Date, Message-ID, and Feedback-ID. A mailbox
provider copies Feedback-ID into spam complaints, so the complaint points
back at one message. The complaint path is on the
Sender
reputation page.
A working sender domain from signup
Every organization gets a managed sender domain at {org}.open.{platform},
pre-verified and DKIM-signed, with all records served by the internal
nameserver. Your first message needs no DNS configuration. You can delegate
your own domains in parallel whenever you want your own domain in the
equation above.
The delivery pipeline, step by step
sequenceDiagram
participant App as Your application
participant MSA as relay SMTP (587/465)
participant Worker as relay worker
participant Scan as Scanner
participant Sign as DKIM signer
participant Remote as Recipient MX
App->>MSA: STARTTLS, AUTH, message
MSA->>MSA: sender-domain, suppression, billing checks
MSA-->>App: 250 OK enqueued
MSA->>Worker: enqueue spam scan for the stored message
Worker->>Scan: scan the stored message
Scan-->>Worker: score and action
alt score reaches the hold threshold
Worker->>Worker: status held, stop
else clean
Worker->>Sign: sign with RSA-2048, Ed25519
Sign-->>Worker: signed message
Worker->>Remote: STARTTLS on 25, per-MX attempts
Remote-->>Worker: SMTP response, recorded in the dashboard
end
Each step has a user-visible consequence in the dashboard, listed in the next
sections.
Address hygiene: the suppression list
Every message gets a fresh Return-Path of the form
bounce+{message-id}@{sender-subdomain}, so every bounce points at one
message. When a recipient server rejects a message permanently, relay records
the bounce, marks the message as bounced, and adds the address to your
suppression list. relay then refuses further sends to that address. The
submission still succeeds, and relay stores the message as suppressed, so
your application sees no error and no retry loop.
You can add entries manually, for example before a large import.
If the address returns, remove the entry. Clearing the whole list is a
separate action, and it warns first: every address that bounced starts
receiving mail again, and those bounces count against your sender
reputation. Addresses store as salted SHA-256 hashes
only. See Data
privacy for what that means.
Content quality: the outbound spam gate
Before delivery, relay scores each outgoing message and scans it for
malware. A message whose score reaches the hold threshold, or that the scan
rejects, stays HELD and does not reach the recipient. If the scanner cannot
run, the message stays pending instead of being held. You see the score,
the spam action, the malware verdict, and the message content in the
dashboard, so you can fix the template, not fight the queue. This gate
catches compromised credentials, broken templates, and spamtraps before
they hurt your domain.
When delivery fails
relay tries every MX host of the recipient domain in preference order and
records one transmission per attempt, with the host and the reason on each
row. The outcomes:
- 5xx answer. The remote server rejects the message or the recipient
permanently. relay marks the message as bounced and suppresses the
address. The dashboard shows the exact SMTP answer. - 4xx answer. The remote server is not accepting the message right now.
relay records the answer for that host and tries the next one. When every
host answers with a temporary failure, the message ends failed, and each
host keeps its own answer. - No MX records or a failed lookup. relay records why there was nothing
to try, and separates a domain without MX records from a lookup that
failed, for example a resolver timeout. - MTA-STS rejection. relay skips the host and records which policy
pattern rejected it. - Transport problems. relay records the failing host and the error, for
example a connection timeout or a dropped connection.
A 250 acceptance from your submission is not a delivery confirmation. The
dashboard’s transmissions are the confirmation path.
What your application sees
| SMTP reply you receive | Meaning | Your move |
|---|---|---|
| 235 after AUTH | Credential accepted | Proceed with the message |
| 530 Authentication required | Submission without TLS or without AUTH | Use TLS before AUTH |
| 535 Authentication failed | Unknown org, wrong key, or held credential | Check the key and its state |
| 250 | Accepted and queued for delivery | Nothing, watch the dashboard |
| 550 Sender domain not registered | From-domain does not belong to your org | Register or fix the From address |
| 550 Recipient not allowed without active billing | Trial over, only org-member recipients allowed | Activate billing or use an internal member address |
TLS and reputation inputs, briefly
MTA-STS enforcement, TLS-RPT collection, and the SPF/DKIM/DMARC alignment
above exist because receivers grade those signals. The sender-reputation page
explains why they are also your reputation story. Read
Sender reputation.
Related pages
- Sending. The SMTP
interface and all acceptance rules. - Reliability. What
happens on each failure path.