From 32d6e0fe686b06d4111ed1388f9e6dcc8d1f8f56 Mon Sep 17 00:00:00 2001 From: Lutfar Rahman Nirjhar Date: Tue, 14 Jul 2026 03:41:36 +0600 Subject: [PATCH 1/5] Add BitsPath Business Email template (bitspath.com.business-email) --- bitspath.com.business-email.json | 127 +++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 bitspath.com.business-email.json diff --git a/bitspath.com.business-email.json b/bitspath.com.business-email.json new file mode 100644 index 00000000..0cb4ea32 --- /dev/null +++ b/bitspath.com.business-email.json @@ -0,0 +1,127 @@ +{ + "providerId": "bitspath.com", + "providerName": "BitsPath", + "serviceId": "business-email", + "syncBlock": false, + "serviceName": "BitsPath Business Email", + "version": 1, + "logoUrl": "https://bitspath.com/logo.png", + "description": "Publish the mail records for hosted business email on your domain: inbound delivery (MX), sender authentication (SPF, DKIM, DMARC), the Postal outbound relay records, and mail client autodiscovery.", + "variableDescription": "mx = mail host; mxpriority = MX priority; spf = full SPF policy; dmarc = full DMARC policy; dkim-ed25519 / dkim-rsa = Stalwart DKIM public keys with their selectors; postal-dkim = Postal relay DKIM key with its selector; psrp-host / psrp = Postal return-path CNAME. All values are generated per domain and delivered on the signed apply URL.", + "syncPubKeyDomain": "bitspath.com", + "syncRedirectDomain": "bitspath.com", + "warnPhishing": false, + "records": [ + { + "type": "MX", + "host": "@", + "pointsTo": "%mx%", + "priority": "%mxpriority%", + "ttl": 3600 + }, + { + "type": "TXT", + "host": "@", + "data": "%spf%", + "ttl": 3600, + "txtConflictMatchingMode": "Prefix", + "txtConflictMatchingPrefix": "v=spf1" + }, + { + "type": "TXT", + "host": "_dmarc", + "data": "%dmarc%", + "ttl": 3600, + "txtConflictMatchingMode": "All" + }, + { + "type": "TXT", + "host": "%dkim-ed25519-selector%._domainkey", + "data": "%dkim-ed25519%", + "ttl": 3600, + "txtConflictMatchingMode": "All" + }, + { + "type": "TXT", + "host": "%dkim-rsa-selector%._domainkey", + "data": "%dkim-rsa%", + "ttl": 3600, + "txtConflictMatchingMode": "All" + }, + { + "type": "TXT", + "host": "%postal-dkim-selector%._domainkey", + "data": "%postal-dkim%", + "ttl": 3600, + "txtConflictMatchingMode": "All" + }, + { + "type": "CNAME", + "host": "%psrp-host%", + "pointsTo": "%psrp%", + "ttl": 3600 + }, + { + "type": "CNAME", + "host": "autoconfig", + "pointsTo": "%mx%", + "ttl": 3600 + }, + { + "type": "CNAME", + "host": "autodiscover", + "pointsTo": "%mx%", + "ttl": 3600 + }, + { + "type": "CNAME", + "host": "mta-sts", + "pointsTo": "%mx%", + "ttl": 3600 + }, + { + "type": "SRV", + "host": "@", + "service": "_imaps", + "protocol": "_tcp", + "priority": 0, + "weight": 1, + "port": 993, + "target": "%mx%", + "ttl": 3600 + }, + { + "type": "SRV", + "host": "@", + "service": "_submissions", + "protocol": "_tcp", + "priority": 0, + "weight": 1, + "port": 465, + "target": "%mx%", + "ttl": 3600 + }, + { + "type": "SRV", + "host": "@", + "service": "_pop3s", + "protocol": "_tcp", + "priority": 0, + "weight": 1, + "port": 995, + "target": "%mx%", + "ttl": 3600 + }, + { + "type": "SRV", + "host": "@", + "service": "_jmap", + "protocol": "_tcp", + "priority": 0, + "weight": 1, + "port": 443, + "target": "%mx%", + "ttl": 3600 + } + ] +} \ No newline at end of file From 10ac6526b06cd0db298ae6689c6964f7365dd43b Mon Sep 17 00:00:00 2001 From: Lutfar Rahman Nirjhar Date: Tue, 14 Jul 2026 04:02:26 +0600 Subject: [PATCH 2/5] Fix schema compliance: SRV name field, SPFM record, drop warnPhishing, DMARC essential --- bitspath.com.business-email.json | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/bitspath.com.business-email.json b/bitspath.com.business-email.json index 0cb4ea32..3197a720 100644 --- a/bitspath.com.business-email.json +++ b/bitspath.com.business-email.json @@ -7,10 +7,9 @@ "version": 1, "logoUrl": "https://bitspath.com/logo.png", "description": "Publish the mail records for hosted business email on your domain: inbound delivery (MX), sender authentication (SPF, DKIM, DMARC), the Postal outbound relay records, and mail client autodiscovery.", - "variableDescription": "mx = mail host; mxpriority = MX priority; spf = full SPF policy; dmarc = full DMARC policy; dkim-ed25519 / dkim-rsa = Stalwart DKIM public keys with their selectors; postal-dkim = Postal relay DKIM key with its selector; psrp-host / psrp = Postal return-path CNAME. All values are generated per domain and delivered on the signed apply URL.", + "variableDescription": "mx = mail host; mxpriority = MX priority; spfrules = SPF merge mechanisms (e.g. include:spf.postal.lonesock.pro); dmarc = full DMARC policy; dkim-ed25519 / dkim-rsa = Stalwart DKIM public keys with their selectors; postal-dkim = Postal relay DKIM key with its selector; psrp-host / psrp = Postal return-path CNAME. All values are generated per domain and delivered on the signed apply URL.", "syncPubKeyDomain": "bitspath.com", "syncRedirectDomain": "bitspath.com", - "warnPhishing": false, "records": [ { "type": "MX", @@ -20,19 +19,18 @@ "ttl": 3600 }, { - "type": "TXT", + "type": "SPFM", "host": "@", - "data": "%spf%", - "ttl": 3600, - "txtConflictMatchingMode": "Prefix", - "txtConflictMatchingPrefix": "v=spf1" + "spfRules": "%spfrules%", + "ttl": 3600 }, { "type": "TXT", "host": "_dmarc", "data": "%dmarc%", "ttl": 3600, - "txtConflictMatchingMode": "All" + "txtConflictMatchingMode": "All", + "essential": "OnApply" }, { "type": "TXT", @@ -81,7 +79,7 @@ }, { "type": "SRV", - "host": "@", + "name": "@", "service": "_imaps", "protocol": "_tcp", "priority": 0, @@ -92,7 +90,7 @@ }, { "type": "SRV", - "host": "@", + "name": "@", "service": "_submissions", "protocol": "_tcp", "priority": 0, @@ -103,7 +101,7 @@ }, { "type": "SRV", - "host": "@", + "name": "@", "service": "_pop3s", "protocol": "_tcp", "priority": 0, @@ -114,7 +112,7 @@ }, { "type": "SRV", - "host": "@", + "name": "@", "service": "_jmap", "protocol": "_tcp", "priority": 0, From e74510796c2b04282c6b9e352654cdd87e1e4c4f Mon Sep 17 00:00:00 2001 From: Lutfar Rahman Nirjhar Date: Tue, 14 Jul 2026 04:05:24 +0600 Subject: [PATCH 3/5] Fix logoUrl to served asset (logo.svg) --- bitspath.com.business-email.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bitspath.com.business-email.json b/bitspath.com.business-email.json index 3197a720..7663758f 100644 --- a/bitspath.com.business-email.json +++ b/bitspath.com.business-email.json @@ -5,7 +5,7 @@ "syncBlock": false, "serviceName": "BitsPath Business Email", "version": 1, - "logoUrl": "https://bitspath.com/logo.png", + "logoUrl": "https://bitspath.com/logo.svg", "description": "Publish the mail records for hosted business email on your domain: inbound delivery (MX), sender authentication (SPF, DKIM, DMARC), the Postal outbound relay records, and mail client autodiscovery.", "variableDescription": "mx = mail host; mxpriority = MX priority; spfrules = SPF merge mechanisms (e.g. include:spf.postal.lonesock.pro); dmarc = full DMARC policy; dkim-ed25519 / dkim-rsa = Stalwart DKIM public keys with their selectors; postal-dkim = Postal relay DKIM key with its selector; psrp-host / psrp = Postal return-path CNAME. All values are generated per domain and delivered on the signed apply URL.", "syncPubKeyDomain": "bitspath.com", From c21ca68f4ef0052bd409314001d6d0a9aad53942 Mon Sep 17 00:00:00 2001 From: Lutfar Rahman Nirjhar Date: Tue, 14 Jul 2026 11:40:07 +0600 Subject: [PATCH 4/5] Drop SRV records (editor rejects SRV host form); keep autoconfig/autodiscover CNAMEs --- bitspath.com.business-email.json | 44 -------------------------------- 1 file changed, 44 deletions(-) diff --git a/bitspath.com.business-email.json b/bitspath.com.business-email.json index 7663758f..2fdaab64 100644 --- a/bitspath.com.business-email.json +++ b/bitspath.com.business-email.json @@ -76,50 +76,6 @@ "host": "mta-sts", "pointsTo": "%mx%", "ttl": 3600 - }, - { - "type": "SRV", - "name": "@", - "service": "_imaps", - "protocol": "_tcp", - "priority": 0, - "weight": 1, - "port": 993, - "target": "%mx%", - "ttl": 3600 - }, - { - "type": "SRV", - "name": "@", - "service": "_submissions", - "protocol": "_tcp", - "priority": 0, - "weight": 1, - "port": 465, - "target": "%mx%", - "ttl": 3600 - }, - { - "type": "SRV", - "name": "@", - "service": "_pop3s", - "protocol": "_tcp", - "priority": 0, - "weight": 1, - "port": 995, - "target": "%mx%", - "ttl": 3600 - }, - { - "type": "SRV", - "name": "@", - "service": "_jmap", - "protocol": "_tcp", - "priority": 0, - "weight": 1, - "port": 443, - "target": "%mx%", - "ttl": 3600 } ] } \ No newline at end of file From 2f007d0ba34e46dce477d1d44c3d8aa236d6004c Mon Sep 17 00:00:00 2001 From: Lutfar Rahman Nirjhar Date: Sun, 19 Jul 2026 17:19:45 +0600 Subject: [PATCH 5/5] Fix return-path CNAME: use fixed host 'psrp' and target rp.postal.lonesock.pro Per review (pawel-kow): the return-path CNAME had both host and value as bare variables with no justification. It is in fact fixed BitsPath/Postal infrastructure (psrp. -> rp.postal.lonesock.pro, verified in production), so it is now a template constant. Updated variableDescription to explain this. --- bitspath.com.business-email.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bitspath.com.business-email.json b/bitspath.com.business-email.json index 2fdaab64..17941f6b 100644 --- a/bitspath.com.business-email.json +++ b/bitspath.com.business-email.json @@ -7,7 +7,7 @@ "version": 1, "logoUrl": "https://bitspath.com/logo.svg", "description": "Publish the mail records for hosted business email on your domain: inbound delivery (MX), sender authentication (SPF, DKIM, DMARC), the Postal outbound relay records, and mail client autodiscovery.", - "variableDescription": "mx = mail host; mxpriority = MX priority; spfrules = SPF merge mechanisms (e.g. include:spf.postal.lonesock.pro); dmarc = full DMARC policy; dkim-ed25519 / dkim-rsa = Stalwart DKIM public keys with their selectors; postal-dkim = Postal relay DKIM key with its selector; psrp-host / psrp = Postal return-path CNAME. All values are generated per domain and delivered on the signed apply URL.", + "variableDescription": "mx = mail host; mxpriority = MX priority; spfrules = SPF merge mechanisms (e.g. include:spf.postal.lonesock.pro); dmarc = full DMARC policy; dkim-ed25519 / dkim-rsa = Stalwart DKIM public keys with their selectors; postal-dkim = Postal relay DKIM key with its selector. The Postal return-path CNAME (host 'psrp' -> rp.postal.lonesock.pro) is fixed BitsPath infrastructure and is a template constant, not a variable. Variable values are generated per domain and delivered on the signed apply URL.", "syncPubKeyDomain": "bitspath.com", "syncRedirectDomain": "bitspath.com", "records": [ @@ -55,8 +55,8 @@ }, { "type": "CNAME", - "host": "%psrp-host%", - "pointsTo": "%psrp%", + "host": "psrp", + "pointsTo": "rp.postal.lonesock.pro", "ttl": 3600 }, {