BillionMail DNS setup: MX, SPF, DKIM, DMARC and PTR explained
DNS is what decides whether your BillionMail email lands in the inbox or in spam. BillionMail makes this easier than most mail servers: it tells you exactly which records to add, and checks them for you. This guide explains what each record does, in plain English, and how to add them (we use Cloudflare as the example).
Our example names:
Step 1: Add the sending domain
In BillionMail, open Domain > Add Domain.
![[Image: attachment.php?aid=415]](https://adminsforum.com/attachment.php?aid=415)
At the top you'll see six checks: MX, A record, SPF, DKIM, DMARC and PTR. They're all red at first. Below them, BillionMail lists the records to add.
What each record does
A record: "where is the mail server?"
Points your mail server name to its IP address.
MX record: "who receives mail for this domain?"
Tells other servers where to deliver email for your sending domain. Needed so bounces and replies reach you.
SPF: "which servers may send for this domain?"
Lists your server as allowed. The -all at the end means "reject everyone else". Only one SPF record per name: if you already have one, merge them.
DKIM: "is this message really from us, and unchanged?"
A public key. BillionMail signs every message with the matching private key, and receivers verify the signature with this record. Always use the Copy button; one missing character breaks it.
DMARC: "what to do when SPF and DKIM fail?"
Tells receivers to quarantine (spam-folder) mail that fails, and where to send reports.
PTR (reverse DNS): "which name belongs to this IP?"
The reverse of the A record. You can't add this one in Cloudflare; only your VPS provider (who owns the IP) can set it. See Step 4.
Step 2: Add the records in Cloudflare
In Cloudflare, open your domain, go to DNS > Records and add each record. Or, quicker: paste them into a small text file in BIND format and use DNS > Records > Import and Export > Import.
The one Cloudflare rule: every mail-related record must be DNS only (grey cloud), never proxied (orange). Cloudflare's proxy only handles web traffic, so a proxied mail server can't receive mail. If you import a file, leave "Proxy imported DNS records" unticked.
Step 3: Verify
Back in BillionMail, click Records set, verify DNS resolution. Within a few minutes MX, A, SPF, DKIM and DMARC should turn green.
![[Image: attachment.php?aid=416]](https://adminsforum.com/attachment.php?aid=416)
Prefer the terminal? These show what the world sees:
On the server, bm show-record prints the records BillionMail expects.
Step 4: Ask your provider for the PTR record
Look in your VPS provider's control panel for "Reverse DNS" or "rDNS". If there's no such setting, open a support ticket. Something like:
It should answer with your mail server name, and that name must point back to the same IP (forward and reverse must match). In our test, the provider set it within a day, and BillionMail's PTR check turned green.
Common DNS problems
What's next
Next: BillionMail SSL and hostname fix, so the dashboard gets a real certificate and your server introduces itself with the right name.
More BillionMail how-to guides
Tested on BillionMail 4.9.0 with Cloudflare DNS, October 2026. Sources: BillionMail on GitHub · Cloudflare: import and export DNS records.
DNS is what decides whether your BillionMail email lands in the inbox or in spam. BillionMail makes this easier than most mail servers: it tells you exactly which records to add, and checks them for you. This guide explains what each record does, in plain English, and how to add them (we use Cloudflare as the example).
Our example names:
- Mail server: bm.example.com at IP 203.0.113.10
- Sending domain: news.example.com
Step 1: Add the sending domain
In BillionMail, open Domain > Add Domain.
- Domain: the domain you send from, e.g. news.example.com.
- Domain quota / Mailbox count: the defaults are fine.
- Hostname: your mail server name, e.g. bm.example.com.
- Keep Automatically create brand information ticked. It creates admin@, support@, noreply@, abuse@ and postmaster@ for you.
At the top you'll see six checks: MX, A record, SPF, DKIM, DMARC and PTR. They're all red at first. Below them, BillionMail lists the records to add.
What each record does
A record: "where is the mail server?"
Code:
bm.example.com A 203.0.113.10MX record: "who receives mail for this domain?"
Code:
news.example.com MX 10 bm.example.comSPF: "which servers may send for this domain?"
Code:
news.example.com TXT "v=spf1 +a +mx +ip4:203.0.113.10 -all"DKIM: "is this message really from us, and unchanged?"
Code:
default._domainkey.news.example.com TXT "v=DKIM1; k=rsa; p=MIIBIjAN..."DMARC: "what to do when SPF and DKIM fail?"
Code:
_dmarc.news.example.com TXT "v=DMARC1;p=quarantine;rua=mailto:[email protected]"PTR (reverse DNS): "which name belongs to this IP?"
Code:
203.0.113.10 PTR bm.example.comStep 2: Add the records in Cloudflare
In Cloudflare, open your domain, go to DNS > Records and add each record. Or, quicker: paste them into a small text file in BIND format and use DNS > Records > Import and Export > Import.
The one Cloudflare rule: every mail-related record must be DNS only (grey cloud), never proxied (orange). Cloudflare's proxy only handles web traffic, so a proxied mail server can't receive mail. If you import a file, leave "Proxy imported DNS records" unticked.
Step 3: Verify
Back in BillionMail, click Records set, verify DNS resolution. Within a few minutes MX, A, SPF, DKIM and DMARC should turn green.
Prefer the terminal? These show what the world sees:
Code:
dig +short MX news.example.com
dig +short TXT news.example.com
dig +short TXT default._domainkey.news.example.com
dig +short TXT _dmarc.news.example.comStep 4: Ask your provider for the PTR record
Look in your VPS provider's control panel for "Reverse DNS" or "rDNS". If there's no such setting, open a support ticket. Something like:
Quote:Hello, please set the reverse DNS (PTR) record for 203.0.113.10 to bm.example.com. The A record already points to this IP. It's used as a mail server hostname. Thank you.Check it afterwards:
Code:
dig +short -x 203.0.113.10Common DNS problems
- Check stays red for hours: typo in the host name. In Cloudflare, the host for news.example.com is news, not the full name, unless you import a file.
- Two SPF records: receivers treat that as an error. Combine them into one.
- DKIM fails in a test even though the record exists: open a received email's headers, find DKIM-Signature and look at s=. That's the selector. Make sure a record exists for exactly that selector (e.g. short._domainkey). We hit this ourselves.
- Mail records proxied: switch them to grey cloud.
- Name already used: if mail.example.com already points to another server, pick a different name for BillionMail (we used bm.).
What's next
Next: BillionMail SSL and hostname fix, so the dashboard gets a real certificate and your server introduces itself with the right name.
More BillionMail how-to guides
- Send API for transactional email
- WordPress email through BillionMail SMTP
- Import contacts, groups and tags
- Email templates explained
- SMTP relay with Amazon SES, Brevo or Mailgun
- Mailboxes and webmail
- Campaign analytics explained
- IP warm-up plan
- Move from Mailchimp or Sendy
- Add a second sending domain
Tested on BillionMail 4.9.0 with Cloudflare DNS, October 2026. Sources: BillionMail on GitHub · Cloudflare: import and export DNS records.

