Fix SendCanary email-setup SPF: use per-domain token variable#947
Fix SendCanary email-setup SPF: use per-domain token variable#947pawel-kow merged 1 commit intoDomain-Connect:masterfrom
Conversation
|
✅ JSON Filename Check Passed |
|
✅ JSON Schema Validation Passed |
Linter OK
|
| Level | Code | Note |
|---|---|---|
| info | DCTL1021 | missing from iana definitions |
|
Thanks for the review. The reason we use a bare TXT with Our flow works like this:
This is a deliberate SPF takeover, not an accidental overwrite. The customer's existing senders are preserved inside our managed record, and we handle ongoing SPF management from there. That said, we understand the concern -- a bare TXT replacing SPF is dangerous in the general case. Would you prefer we switch to SPFM with just Happy to change to SPFM if that's the preference. |
|
We'll keep TXT for this template. The managed SPF architecture (extract existing mechanisms into our hosted record, replace with single include) requires the full replacement that TXT provides. Resolving this thread -- thanks for the review and the flexibility. |
PR Description Check PassedAll required sections are filled in correctly. Details |
6f55b46
Description
Updates the
sendcanary.com.email-setuptemplate to use fully variable record targets. No hardcoded infrastructure domains -- all values are passed by the backend at apply time.Changes:
%token%.dmarc.sendcanary.com->%dmarcTarget%include:_spf.spoofcanary.com->%spfRecord%%token%.bimi.sendcanary.com->%bimiTarget%The original version of this template was live and working on Cloudflare. SendCanary operates as a managed DNS service: before applying this template, the backend reads the domain's existing SPF record, extracts all existing mechanisms (includes, ip4, ip6, mx, a) into a managed SPF record on our infrastructure, then passes a single-include SPF value (
v=spf1 include:spf-{token}.dns.sendcanary.com ~all) as%spfRecord%. This deliberate takeover preserves the customer's existing senders inside our managed record. Bare TXT is retained over SPFM because the architecture requires full replacement, not merge (approved by @pawel-kow in review).Type of change
How Has This Been Tested?
Checklist of common problems
%spfRecord%which resolves to a fullv=spf1 ...value. This is a managed DNS takeover pattern: the backend hosts the actual SPF mechanisms onspf-{token}.dns.sendcanary.comand passes a single-include record. Full replacement is required to switch the domain to managed SPF. SPFM was considered but the managed architecture requires replacement, not merge (see PR discussion).v=spf1prefix match is set on the SPF TXT record%spfRecord%as the full value; this is required for the managed DNS takeover pattern (backend constructs the full SPF value)Online Editor test results
sendcanary.com.email-setup.json: