Skip to content

feat(everinbox): add subdomain sending templates#1310

Open
gbretas wants to merge 2 commits into
Domain-Connect:masterfrom
gbretas:feat/everinbox-subdomain-templates
Open

feat(everinbox): add subdomain sending templates#1310
gbretas wants to merge 2 commits into
Domain-Connect:masterfrom
gbretas:feat/everinbox-subdomain-templates

Conversation

@gbretas

@gbretas gbretas commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Description

Adds subdomain sending support for Everinbox templates. When customers send email from a subdomain (e.g. marketing.example.com) rather than the root domain, the existing templates place DKIM, DMARC and mail routing records under the root zone — causing DKIM verification failures.

New templates:

  • everinbox.domain-auth-subdomain — DKIM + DMARC + mail routing for subdomain sending domains
  • everinbox.domain-auth-tracking-subdomain — same as above + URL/click tracking CNAME

Updated template:

  • everinbox.domain-auth-tracking bumped to version 2 — consolidated two tracking CNAMEs (URL_TRACKING + CLICK_TRACKING) into a single TRACKING_SUBDOMAIN/TRACKING_TARGET pair, matching real-world usage

Why %SUBDOMAIN% in host instead of the host parameter:
Cloudflare — the primary DNS provider for our users — explicitly does not support the Domain Connect host parameter (it is ignored per their documentation). Using %SUBDOMAIN% as a variable in the host field is the only viable workaround for providers that do not implement this part of the spec. The non-variable parts of each host are fixed (._domainkey., _dmarc., em*.) to limit misuse, consistent with the spirit of the quality guideline.

Type of change

  • New template
  • New feature (non-breaking change which adds functionality to the template)
  • Breaking change (fix or feature that would cause existing template behavior to be not backward compatible) — domain-auth-tracking v2 renames tracking variables

How Has This Been Tested?

  • Template functionality checked using Online Editor
  • Template file name follows the pattern <providerId>.<serviceId>.json
  • resource URL provided with logoUrl is actually served by a webserver

Checklist of common problems

  • syncPubKeyDomain is set — present on all templates
  • warnPhishing is not set alongside syncPubKeyDomainwarnPhishing: false on all templates
  • syncRedirectDomain is set whenever the template uses redirect_uri in the synchronous flow
  • no TXT record contains SPF content — DMARC uses TXT with v=DMARC1, not SPF
  • txtConflictMatchingMode is set on every TXT record that must be unique — set to "All" on DMARC record
  • no variable is used as a bare full record value — all variables are combined with fixed text
  • no bare variable is used as the full host label — all host labels contain fixed parts (e.g. %DKIM_SELECTOR1%._domainkey.%SUBDOMAIN%)
  • %host% does not appear explicitly in any host attribute
  • essential is set to OnApply on records the end user may need to modify — set on DMARC record

Note on %SUBDOMAIN% in host: The guideline recommends using the host parameter instead of a variable in the host field to create a subdomain. However, Cloudflare (our primary provider) explicitly ignores the host parameter in their Domain Connect implementation. The %SUBDOMAIN% variable is therefore the only working solution for subdomain scoping on Cloudflare. All other host parts remain fixed.

Online Editor test results

Editor test link(s):

Test everinbox/domain-auth-subdomain example.com/@

Note: editor test link for everinbox.domain-auth-tracking-subdomain uses the same variable structure; separate link available on request.

Add domain-auth-subdomain and domain-auth-tracking-subdomain templates
for customers sending from a subdomain (e.g. marketing.example.com).

The new SUBDOMAIN variable is prepended to all record hosts so that
DKIM, DMARC and mail routing land under the correct subdomain zone
instead of the root domain.
@github-actions github-actions Bot added Checklist of common problems not complete See PR template and mark *all* checkboxes, even if not applicable. Explain any discrepancies. PR description incomplete The PR description template was not filled in at all, altered or filled in improperly. Test links missing No test links from Online Editor provided labels Jun 29, 2026
@github-actions

Copy link
Copy Markdown

JSON Filename Check Passed

@github-actions

Copy link
Copy Markdown

JSON Schema Validation Passed

@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown

Linter OK

everinbox.domain-auth-subdomain.json

Level Code Note

everinbox.domain-auth-tracking-subdomain.json

Level Code Note

everinbox.domain-auth-tracking.json

Level Code Note

Remove redundant CLICK_TRACKING_SUBDOMAIN record — both URL and click
tracking resolve through the same subdomain. Rename variables to
TRACKING_SUBDOMAIN/TRACKING_TARGET for clarity.

Bumps domain-auth-tracking to version 2.
@github-actions github-actions Bot removed Checklist of common problems not complete See PR template and mark *all* checkboxes, even if not applicable. Explain any discrepancies. PR description incomplete The PR description template was not filled in at all, altered or filled in improperly. labels Jun 29, 2026
@github-actions

Copy link
Copy Markdown

PR Description Check Failed

The PR description is missing required elements. Please update it according to the PR template.

Details
  WARNING: could not decode token: Incorrect padding
  OK  Type of change: 3/3 checkboxes ticked
  OK  How Has This Been Tested?: all 3 checkboxes ticked
  OK  Checklist of common problems: 9/9 checkboxes ticked

Labels to add: Test links missing
Labels to remove: Checklist of common problems not complete, Forged editor links, PR description incomplete

PR description check FAILED:
  FAIL  'Online Editor test results': no valid editor test link found
  FAIL  Template coverage: everinbox.domain-auth-subdomain.json: no editor test link found (expected template id 'everinbox.domain-auth-subdomain')
  FAIL  Template coverage: everinbox.domain-auth-tracking-subdomain.json: no editor test link found (expected template id 'everinbox.domain-auth-tracking-subdomain')
  FAIL  Template coverage: everinbox.domain-auth-tracking.json: no editor test link found (expected template id 'everinbox.domain-auth-tracking')

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Test links missing No test links from Online Editor provided

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant