AdminsForum

aaPanel BillionMail Guides

Guide BillionMail DNS Setup: MX, SPF, DKIM, DMARC and PTR Explained

Started by JAY 0 replies 62 views
1JAY
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
#1
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:
  • Mail server: bm.example.com at IP 203.0.113.10
  • Sending domain: news.example.com
Replace them with your own.

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.
Click Confirm, then click DNS Records next to the domain.

[Image: 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?"
Code:
bm.example.com A 203.0.113.10
Points your mail server name to its IP address.

MX record: "who receives mail for this domain?"
Code:
news.example.com MX 10 bm.example.com
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?"
Code:
news.example.com TXT "v=spf1 +a +mx +ip4:203.0.113.10 -all"
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?"
Code:
default._domainkey.news.example.com TXT "v=DKIM1; k=rsa; p=MIIBIjAN..."
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?"
Code:
_dmarc.news.example.com TXT "v=DMARC1;p=quarantine;rua=mailto:[email protected]"
Tells receivers to quarantine (spam-folder) mail that fails, and where to send reports.

PTR (reverse DNS): "which name belongs to this IP?"
Code:
203.0.113.10 PTR bm.example.com
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]

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.com
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:
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.10
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
  • 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
Tested on BillionMail 4.9.0 with Cloudflare DNS, October 2026. Sources: BillionMail on GitHub · Cloudflare: import and export DNS records.

Attached Files

Image(s)
       
Reply
Possibly Related Threads…matched by title
Replies:0Views:32
Replies:0Views:29
Replies:0Views:27
Replies:0Views:28
Replies:0Views:28

Users browsing this thread: 1 Guest(s)
Forum Jump: