Skip to content

Add euromail.dev mail template#942

Open
lamminpaa wants to merge 5 commits intoDomain-Connect:masterfrom
lamminpaa:add-euromail-template
Open

Add euromail.dev mail template#942
lamminpaa wants to merge 5 commits intoDomain-Connect:masterfrom
lamminpaa:add-euromail-template

Conversation

@lamminpaa
Copy link
Copy Markdown

@lamminpaa lamminpaa commented Apr 4, 2026

Description

Add Domain Connect template for EuroMail, a GDPR-compliant transactional email API with EU data residency (Finland). The template configures DKIM signing, SPF authorization, and bounce handling for transactional email delivery.

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
  • Template passes dc-template-linter locally (no errors)
  • Template passes JSON Schema validation in CI

Checklist of common problems

  • syncPubKeyDomain is set — set to euromail.dev
  • warnPhishing is not set alongside syncPubKeyDomain
  • syncRedirectDomain is set whenever the template uses redirect_uri in the synchronous flow
  • no TXT record contains SPF content — using SPFM record type for SPF
  • txtConflictMatchingMode is set on every TXT record that must be unique per label or content prefix — set to Prefix with v=DKIM1 on the DKIM record
  • no variable is used as a bare full record value — DKIM uses v=DKIM1; k=rsa; p=%dkimKey%
  • no bare variable is used as the full host label — DKIM host is euromail._domainkey.%subdomain%
  • no variable is used in the host field to create a subdomain — %subdomain% is used as a host prefix (e.g. em). This is intentional: euromail isolates transactional email DNS under a configurable subdomain (default em) to protect the root domain's reputation. This is the same pattern used by Resend (%spfDomain%) and other email providers.
  • %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 — not applicable, all three records (DKIM, SPF, MX) are required for the service to function. MX is needed for VERP bounce routing.

Online Editor test results

Editor test link(s):

Test euromail.dev/mail example.com/@
Test euromail.dev/mail example.com/sub

Contact

EuroMail is a GDPR-compliant transactional email API with EU data
residency (Finland). This template configures DKIM signing, SPF
authorization, and bounce handling via MX records.

Records created:
- TXT: euromail._domainkey.{subdomain} (DKIM public key)
- SPFM: {subdomain} (include:spf.euromail.dev)
- MX: {subdomain} -> bounce.euromail.dev (priority 10)

Variables: subdomain (default: em), dkimKey (per-domain DKIM public key)
@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. labels Apr 4, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 4, 2026

JSON Filename Check Passed

@github-actions github-actions bot added the Test links missing No test links from Online Editor provided label Apr 4, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 4, 2026

JSON Schema Validation Passed

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 4, 2026

Linter OK

euromail.dev.mail.json

Level Code Note

@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 Apr 4, 2026
Fixes DCTL1005 (invalid txtConflictMatchingMode 'Full') and
DCTL1013 (missing txtConflictMatchingPrefix for Prefix mode).
@github-actions github-actions bot added PR description incomplete The PR description template was not filled in at all, altered or filled in improperly. and removed 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 Apr 4, 2026
MX for bounce handling is optional for basic sending functionality.
Users can remove it without breaking DKIM or SPF.
@github-actions github-actions bot added the Test links missing No test links from Online Editor provided label Apr 4, 2026
@github-actions github-actions bot removed the Test links missing No test links from Online Editor provided label Apr 4, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 4, 2026

PR Description Check Passed

All required sections are filled in correctly.

Details
  OK  Type of change: 1/4 checkboxes ticked
  OK  How Has This Been Tested?: all 5 checkboxes ticked
  OK  Checklist of common problems: 8/10 checkboxes ticked
  OK  Online Editor test results: 2 link(s) found
  OK  Template coverage: all 1 template(s) covered
Labels to remove: Checklist of common problems not complete, Forged editor links, PR description incomplete, Test links missing

PR description check PASSED

"records": [
{
"type": "TXT",
"host": "euromail._domainkey.%subdomain%",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All host entries have the same %subdomain% suffix. It looks like against Rule 8 where host parameter shall be used instead.

@kerolasa is it worth adding to the linter if all RRs share the same variable as suffix?

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants