self-hosting
DNS Setup
Configure DNS records for receiving email.
Required Records
MX Record
Points email delivery to your SMTP server:
test.example.com. IN MX 10 mail.yourserver.com.The MX target must equal the API process's smtp.hostname
(BB_SMTP_HOSTNAME) exactly — a case-insensitive comparison with the trailing
dot stripped, and no suffix or subdomain fallback. mail.yourserver.com in DNS
against a smtp.hostname of yourserver.com, or against the localhost
default, will never verify. Note it is the API that runs the check, not smtpd.
TXT Verification Record
BurnerByte generates a unique token for each domain:
test.example.com. IN TXT "burnerbyte-verify=<your-token>"The token is the domain's UUID, shown on the domain detail page. Matching is a substring test against every TXT record on the name, so the value may sit inside a longer record. Deleting and re-adding a domain mints a new token.
Additional Records
SPF
SPF is checked on every verification pass and shown on the domain page, but it
gates nothing — only MX and TXT decide the verified state. The check is
satisfied only by a v=spf1 record that contains the configured smtp.hostname
as a literal substring; a mechanism like mx that merely resolves to your
host does not count:
test.example.com. IN TXT "v=spf1 a:mail.yourserver.com mx -all"A bare "v=spf1 mx -all" is perfectly valid SPF but leaves BurnerByte's SPF
indicator red, because the hostname string is absent.
DKIM
If you sign outbound mail, publish the DKIM public key your signer generates:
<selector>._domainkey.test.example.com. IN TXT "v=DKIM1; k=rsa; p=<public-key>"DMARC
Publish a DMARC policy so receivers know how to handle unauthenticated mail:
_dmarc.test.example.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"BurnerByte verifies MX and TXT to receive mail. SPF, DKIM, and DMARC affect deliverability and how other servers treat mail from your domain; configure them on any domain that also sends.
Use a Subdomain
Pointing your apex domain's MX at a disposable-inbox platform routes every address at your organization there. Almost always you want a subdomain:
; Disposable inboxes live here, and only here.test.example.com. IN MX 10 mail.yourserver.com.test.example.com. IN TXT "burnerbyte-verify=<token>" ; Real company mail is untouched.example.com. IN MX 10 aspmx.l.google.com.Addresses then read qa-signup-flow@test.example.com, which is also clearer to
whoever reads the bug report. Each subdomain is added and verified in
BurnerByte as its own domain.
On Cloudflare DNS the proxy must be off — grey cloud — for the MX target and its A record. The orange cloud proxies HTTP and HTTPS only, so a proxied mail host resolves to an address that does not speak SMTP. Disable Cloudflare Email Routing on any domain BurnerByte handles; it adds its own MX records.
Verification
After adding DNS records:
- Wait for DNS propagation (usually 5–30 minutes)
- Click Re-verify DNS on the domain detail page
- Or wait for the background DNS recheck worker (runs every hour)
Both MX and TXT records must be verified before the domain can receive emails.
Testing
# Check MXdig MX test.example.com # Check TXTdig TXT test.example.com # Send a test emailswaks --to test@test.example.com --server mail.yourserver.com:2525A failed DNS lookup — timeout, SERVFAIL, resolver outage — never downgrades an already-verified record: the previous value is kept when the lookup itself errored, so a transient blip cannot flip a domain to unverified. It also means a record you deleted stays green until a lookup succeeds and returns no match. The one exception is the automatic check right after adding a domain: it has no previous value, so a lookup error there records "not verified" and you should re-verify once DNS is answering.