Skip to content

Update Transmit (xmit.sh) email template v2#879

Draft
beingretrogamer wants to merge 1 commit intoDomain-Connect:masterfrom
sendwithxmit:update-xmit-email-template
Draft

Update Transmit (xmit.sh) email template v2#879
beingretrogamer wants to merge 1 commit intoDomain-Connect:masterfrom
sendwithxmit:update-xmit-email-template

Conversation

@beingretrogamer
Copy link
Copy Markdown
Contributor

Summary

Follow-up to #877. Improvements based on analysis of other email provider templates (Resend, SendGrid, Brevo, Forward Email, SparkPost, etc.):

  • DMARC conflict handling: Changed txtConflictMatchingMode from None to Prefix with txtConflictMatchingPrefix: "v=DMARC1". Previously, applying the template on a domain with an existing DMARC record would create a duplicate (invalid DNS). Now it correctly replaces the existing DMARC record while preserving other TXT records at _dmarc.
  • Variable DMARC policy: Changed hardcoded p=none to p=%dmarcPolicy%, allowing per-user DMARC enforcement levels (none, quarantine, reject) without a template version bump.
  • Phishing warning: Added warnPhishing: true so DNS providers show a safety warning before applying email records (following SparkPost/Microsoft pattern).
  • Inbound MX essential: Added essential: "OnApply" on the inbound MX record so users with existing mail providers (Google Workspace, Microsoft 365) can remove it without breaking the template sync state.
  • Version bump: 1 to 2.

Type of change

  • New template
  • Bug fix (non-breaking change which fixes an issue in the 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)

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 — set to xmit.sh, public key published as DNS TXT record at _dcpubkeyv1.xmit.sh
  • warnPhishing is not set alongside syncPubKeyDomain — both are set (warnPhishing for safety, syncPubKeyDomain for async flow)
  • syncRedirectDomain is set whenever the template uses redirect_uri in the synchronous flow — set to xmit.sh
  • no TXT record contains SPF content ("v=spf1 ...") — SPF uses SPFM record type
  • txtConflictMatchingMode is set on every TXT record that must be unique per label or content prefix — set to Prefix on DMARC with prefix v=DMARC1
  • no variable is used as a bare full record value — %dmarcPolicy% is embedded within DMARC string, not bare
  • no variable is used in the host field to create a subdomain
  • %host% does not appear explicitly in any host attribute
  • essential is set to OnApply on records the end user may need to modify or remove without breaking the template — set on DMARC and inbound MX records

Online Editor test results

Editor test link(s):
(will be added after testing with the online editor)

@github-actions github-actions bot added 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 Mar 20, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 20, 2026

JSON Filename Check Passed

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 20, 2026

JSON Schema Validation Passed

@github-actions
Copy link
Copy Markdown

Linter error

xmit.sh.email.json

Level Code Note
error DCTL1028 warnPhishing and syncPubKeyDomain are mutually exclusive

- DMARC: change txtConflictMatchingMode from None to Prefix with
  txtConflictMatchingPrefix v=DMARC1 to replace existing DMARC records
  instead of creating duplicates
- DMARC: make policy a variable (%dmarcPolicy%) for per-user flexibility
- Add warnPhishing: true for DNS provider safety warnings
- Add essential: OnApply on inbound MX so users with existing mail
  providers (Google Workspace, Microsoft 365) can remove it
- Bump version to 2

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@beingretrogamer beingretrogamer force-pushed the update-xmit-email-template branch from edc0a30 to 073aa1c Compare March 20, 2026 11:21
@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
  OK  Type of change: 1/4 checkboxes ticked
  OK  Checklist of common problems: 9/9 checkboxes ticked

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

PR description check FAILED:
  FAIL  'How Has This Been Tested?': 1/3 checkboxes are not ticked
  FAIL  'Online Editor test results': no valid editor test link found
  FAIL  Template coverage: xmit.sh.email.json: no editor test link found (expected template id 'xmit.sh.email')

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

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants