Skip to content

update SendBeam, SendBeam sending domain (version 2) - #1827

Merged
pawel-kow merged 1 commit into
Domain-Connect:masterfrom
sendbeam-io:sendbeam-io-sending-domain-v2
Sep 12, 2026
Merged

pawel-kow merged 1 commit into
Domain-Connect:masterfrom
sendbeam-io:sendbeam-io-sending-domain-v2

Conversation

@allinthecode1

Copy link
Copy Markdown
Contributor

Description

Update to the SendBeam (sendbeam.io) sending-domain template, version 1 → 2. It adds one CNAME record, rsendsend.forge.rmta.net (group sending-host). SendBeam's email provider now requires this record for new sending domains and verifies its target directly. It cannot be delegated through a CNAME under dom.sendbeam.io the way the other two records are, so its target is the provider's fixed hostname.

The DKIM and return-path records are unchanged. Nothing is added at the apex, and no existing record is changed.

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 (sendbeam.io; key published at _dcpubkeyv1.sendbeam.io)
  • warnPhishing is not set alongside syncPubKeyDomain
  • syncRedirectDomain is set (sendbeam.io)
  • no TXT record contains SPF content: the template has no TXT records
  • txtConflictMatchingMode: not applicable, no TXT records
  • no variable is used as a bare full record value: the two delegated pointsTo values are fixed names around %token%, and the new record's pointsTo is fixed
  • no bare variable is used as the full host label: hosts are the fixed resend._domainkey, send and rsend
  • no variable is used in the host field to create a subdomain
  • %host% does not appear explicitly in any host attribute
  • essential: not applicable; none of the records is one the user would modify independently

Online Editor test results

Editor test link(s):

Add the sending-host CNAME (rsend) that the email provider now checks
directly for new sending domains.
@github-actions

Copy link
Copy Markdown

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 3 checkboxes ticked
  OK  Checklist of common problems: 10/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

@github-actions

Copy link
Copy Markdown

JSON Filename Check Passed

@github-actions

Copy link
Copy Markdown

JSON Schema Validation Passed

@github-actions

Copy link
Copy Markdown

Linter OK

sendbeam.io.sending-domain.json

Level Code Note

@github-actions github-actions Bot added the automerge-possible Label indicating, that restrictive linter checks all pass. For now it's PoC. label Sep 11, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Linter passed all checks — approving for auto-merge.

@pawel-kow
pawel-kow added this pull request to the merge queue Sep 12, 2026
Merged via the queue into Domain-Connect:master with commit 318f411 Sep 12, 2026
5 checks passed
@github-actions

Copy link
Copy Markdown

Thanks @allinthecode1 for contributing to the template. 🎉

This template has been reviewed and merged by @pawel-kow. 🙌

This template repository and its review process are maintained by independent individuals in their spare time, not as part of a paid role. If you or your company benefit from this protocol and its tools, please show your appreciation by buying a beer for @pawel-kow: https://github.com/sponsors/pawel-kow

ankrstak added a commit to ankrstak/Templates that referenced this pull request Sep 13, 2026
Resend now requires a CNAME rsend → send.forge.rmta.net for new sending
domains and checks its target directly (the same record SendBeam added in
Domain-Connect#1827); without it a domain configured through the template would never
verify at the provider. Added to the sending group with the provider's fixed
target; nothing else changes. Editor tests re-run against this file.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
pull Bot pushed a commit to buape/domain-connect-templates that referenced this pull request Sep 14, 2026
# Description

New template for **OSV-1** (`osv-1.com`), service `email`: the DNS
records an organization needs to send and receive its email through
OSV-1 (Resend / Amazon SES underneath) on the hostname it chooses —
typically a subdomain such as `notify.example.com`, apex allowed.

- `sending`: DKIM TXT at `resend._domainkey` (`p=%dkim%`), bounce-path
MX at `send` (`feedback-smtp.%region%.amazonses.com`), SPFM at `send`
(`include:amazonses.com`), and the sending-host CNAME `rsend` →
`send.forge.rmta.net` that the email provider now requires for new
domains and checks directly (fixed target, as in Domain-Connect#1827)
- `receiving`: MX at the host itself
(`inbound-smtp.%region%.amazonaws.com`) — requested only for domains
that receive mail
- `dmarc`: fixed `v=DMARC1; p=none;` with Prefix matching, `essential:
OnApply`

Variables are scoped narrowly: `region` only varies the SES region
inside fixed hostnames; `dkim` is the key material after a fixed `p=`
prefix. Synchronous flow with signed requests (`syncPubKeyDomain`
`osv-1.com`, key published at `_dck1.osv-1.com`); `syncRedirectDomain`
`osv-1.com` (redirect_uri lives on `app.osv-1.com`).

## Type of change

Please mark options that are relevant.

- [x] 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?

Please mark the following checks done
- [x] Template functionality checked using [Online
Editor](https://domainconnect.paulonet.eu/dc/free/templateedit)
- [x] Template file name follows the pattern
`<providerId>.<serviceId>.json`
- [x] resource URL provided with `logoUrl` is actually served by a
webserver

# Checklist of common problems

Mark all the checkboxes after conducting the check. Comment on any point
which is not fulfilled.
See [Template Quality
Guidelines](../README.md#template-quality-guidelines) for details and
rationale on each rule.

- [x] `syncPubKeyDomain` is set — **this is mandatory**; omitting it
requires explicit justification in the PR description or the PR will be
rejected
- [x] `warnPhishing` is **not** set alongside `syncPubKeyDomain` — the
two must not appear together
- [x] `syncRedirectDomain` is set whenever the template uses
`redirect_uri` in the synchronous flow
- [x] no TXT record contains SPF content (`"v=spf1 ..."`) — use the
`SPFM` record type instead
- [x] `txtConflictMatchingMode` is set on every TXT record that must be
unique per label or content prefix (e.g. DMARC)
- [x] no variable is used as a bare full record value (e.g. `@ TXT
"%foo%"`) unless necessary — prefer `@ TXT "service-foo=%foo%"`; if
bare, justify in the PR description
- [x] no bare variable is used as the full `host` label — the
non-variable parts are fixed to limit misuse (e.g.
`%dkimkey%._domainkey`, not `%dkimhost%`); if bare, justify in the PR
description
- [x] no variable is used in the `host` field to create a subdomain —
use the `host` parameter or `multiInstance` instead
- [x] `%host%` does not appear explicitly in any `host` attribute
- [x] `essential` is set to `OnApply` on records the end user may need
to modify or remove without breaking the template (e.g. DMARC)

## Online Editor test results

<!-- 
Required. Follow these steps in the Online Editor
(https://domainconnect.paulonet.eu/dc/free/templateedit):
1. Load your template and use "Check template" to perform extended
schema and consistency check
    2. Fill in domain/host as well as variable values
    3. Click "Test apply template"
    4. Click "Copy Markdown" and paste the link below
5. If necessary repeat steps 2-4 with different group setups and/or
domain/host configuration
-->

**Editor test link(s):** 
<!-- paste the links from "Copy Markdown" here -->
<!-- REQUIRED: at last one test with domain apex and one test with
subdomain (host set). EXCEPTION: if hostRequired=true, apex test is not
required.
<!-- paste multiple links if more test conducted. At least 1 per
template file included in the PR -->

- Subdomain, all groups: [Test osv-1.com/email
example.com/notify](https://domainconnect.paulonet.eu/dc/free/templateedit?token=H4sIAJElpmoC%2F%2B1X%2B2%2FiOBD%2BV6xI1e3qeCSQ7YNVpQvQdrkubXl0r7tVhUxswEtip7YDpRX3t984vAKluz3ppOvpkPoDHY%2B%2FeX0z4zxZmoZRgDW1Sk9WJMWIESprxCpZQo2yTs4XoZVZHlzgEBSty9aXrANiReWI%2BTRRpyFmwUo21zwxUqQoJ4z3EeYESepTNoL%2FQHdEpWKCWyUnYwWiL65lAHcGWkeqlM%2FjKMotncgTAVA86wvOqa%2FzRj2nRgaFUOVLFukEyWqBrZQhiiYilkjIPubsERulXxRKnEV6IEXcH6AknBJSrM%2FBrwzqipj7FA0AJUgEekCXMQyE0olghrHIDPIH1B%2BqDJiNggkiNADbcpJJXFGRED1zGbQ1eA9OIPgzKAaOQ66Mm4AhhKI5kxksGe4GtLoWm6R9c5Wp5GqTGp%2FQOy%2FEjyBtnbTeo7mGOZ4lDI2xSqRKU0kJYjyDekIi%2BoCh7hTFKkux0pBkRIYsXGBXz2t1FMXdgPloSCcLW0ypGEAMQMrEO%2FN7hIOYItwDMyg6fm%2BCUBPulwPhD61SDweKziRXcfecTqrJ1Q2ameMmJQxKp7cqmGw16X0MGmQJCtpCEmWVbp%2BsPlQ0Svg4rxdc0pPIULF9054jJJk057nOLAKI0PAIawxH0fGeycSeuamBj8V924afD7oieA%2FyoetY%2BwOArgticL0gsKaZH5qu36wsm0PTUYJxrdoCJD1KSRf7w6wKdZTbm5VwL4eTsiqqlj3IhGR6At1ip1z7ienW1Wn9mXEV9ZpxQCFlFuN%2BEBNa2rT2WvzKhVc%2FSeX1eXhJooExfZqTocY5TvXL%2BOnpsCV5v61DM25alWxNHB7%2FrcSREEv%2FBbJ0FodzhoyOq3WvWXE%2BAtG54PTja6lyJWmPPVhbVeZnK3RQowqSpxk2U%2FGSexFMFmt6N81YEB%2FtrHh%2FB64t2mXe2KmGASEXmvUMx5OAOyy5lSpmOu2zYAEywhKHyuyFBfjtGvrdAv52gX83N%2FAKcNNiRq1eO%2BvVPfus0ro%2Fa9W6xWrjpOw1rj3PPbvwqpUya5yX%2B43K3K4ZS9Csp0K252urTZUGaNspFN0P%2BweHR7jrE9rrD9j3YRByEd1LpePR%2BGHy6JUr1ZPTs0%2B1388%2F1y8urxrNVvv6yx83X7%2F9U7e34TRqVa%2FhlU3MM4KaqJdT1zLVhL0jJO2Y%2FYN1LIEpWsYw2MI40KyDx3glIn4HGxpA8RWcAhYMvTXO8tnifTbgcksOLOfc%2Fyb3a%2B3ZIb7hNDNdf1h0Cl3HtrOu3%2Btm3a7tZo9c4mQLB4TQ4geCDwpO6vnz7F207QG02XLpJvaCMZ4oa2pmT3q8zYuWlGyzTuvrYbWvX5zYmxPvjQW8RtOtEY%2BOYUE5aOtqQn%2FiIHjTBV1sxEUjbg3xJ0vxTbN0M5a1LbzJz9Ua%2Fk%2Fyc7b6tzD0hy%2BAfzOi5TthepeBh8FuPezWw2497NbDbj3s1sPGeoAvEoVHlHSw0S7Yhf2sfZR1im3bLRXcknuUOwBh0f3Vtku2bUKAgT6L8Am%2BWtLfKxZ2%2BPh7sXwuhp9aN1%2F392O3XeGO%2Fbl4M7x2G%2FmgwOW3g%2FjSOcw3jq3pX2ls0pp2FAAA)
- Apex, all groups: [Test osv-1.com/email
example.com/@](https://domainconnect.paulonet.eu/dc/free/templateedit?token=H4sIANclpmoC%2F%2B1X%2B2%2FiRhD%2BV1aWot6pQAzhEThFOgO5hKaE8EiaaxShxR5gi9l1dtcOJKJ%2Fe2fNOyF3OalS0zYSP5jZ2W%2Fe39iPloZx4FMNVunRCqSImAey5lklS6gomU65YmwlVgfndIyKVqN9lUyjWIGMmAuxOowp89eyheaxkRIF3GN8QCj3iAQXWIT%2FUDcCqZjgVimdsHwxEJfSxztDrQNV2t%2BnQZBaObHvCYTiSVdwDq7eN%2BopFRkUD5QrWaBjJKuNtjYMAZmKUBIhB5SzB2qUflIkdpbooRThYEjicEpEsQFHvxKkJ0LuAhkiih8L9BBWMQyF0rFgjrHMDHGH4I5UAs0G%2FpR44KNtOU3ErqhAiL65jNoavUcnCP4MioHjmCvjJmIIoSBlMkMloz0fqluxSRiYq0zFV1tgfCIfnDF9QGn7uP2RLDTM8Txh5J6qWKo0SPAI4wnSF5LAhGLdgYQqCVRpTDLxRmy8xK6e1eokCHs%2Bc8kIpktbTKkQQQzAhokP5jmifgiE9tEMCY4%2BmiDUlLtlX7gjq9SnvoK55CLsncG0Gl990mbmuAUew9LpnQomWy24C1HDW4GitpCesko3j9YAKxrE%2FbioF17S08C0Yue6s0CIM2nOU915BBih6SOqKR4FR3smE3vmpsZ%2BPMjbNj5OdEXwPuZD16l2hwhdF57BdXzfmiW%2Babp%2BvbZsDs1ECca16giU9AG8HnVHSTXWQWpvXsK9FI3LqkCtZpAJyfQUp8XecO07ptsXX%2BrPjKug3wp9wJRZjLt%2B6EHpqbXX4lfOnfrxRl6fhxcnGjtmACk51jTFQb%2BMv8kOO5L3eRuacTOq3s7E0fsfSpw3ptJ9oVm6y8NFh0RH1brTqqQ%2FYaNzweHTa1vlQkKfTaydKouzNTqqgcLkaUYNKza4EyCzWLPbWcLC%2BKC77vtbdG05LovB3hgYFOJTHGqXxfobZdxM%2BDxMBAuopGNlNsIS9mYL93YJfGOZ5xj6FbBmrIxavXbSrzv2SaV9d9Ku9Q6qzeOy07x0nOzJuVOtlFnzrDxoVhYWDRXhgH4RsrNYVR1QGqHtdOYgm8sXDou053rQHwzZHyN%2FzEVwJ5UOo%2FvJ9MEpV6rHX05Oa7%2Bc%2FVo%2Fb1w0W%2B3O5dVv119%2F%2F7tu78Jp1qpO0ymbmOdNaaJeMa1lKoi7Rkjomp1DdSixO7QMkczGoa9Zl97Ttchzu9SUHguu8BSxkOi2%2BpTPl%2B03Se1%2Fk%2FStWex6rmljZkb8kBaLNH9YSBZsOEhmPS%2Bf7PXTbjJNae8AcsWcnfE23nWevQTtettZz9fmrDr%2BPZ0qa2YoZpPFFnVacOSiNNv0v97HLzLyU0Z7MzFuNeN2kNER7pw02bltyJ%2FU999o2ZbrbTlh21F9Z7W90fb7vA5ga4E%2Bbb31Bv2Xtd4P7ut%2FJojVPp%2FdJnCBv1P6O6W%2FU%2Fo7pb9T%2Bn%2BC0vHNX9EIvC41ehk7k0%2FaxWT6oGNnS5lcKVdMpYvZQs7%2B2bZLtm2cRy6ex%2FaIXweb3wVWwE4FXOSjWqdwxflltec3TjN2dPW1c96wr6p9mDSzk3ZDFwuXR9bsLyo4JbzSEwAA)
- Subdomain, groups `sending` + `dmarc` only (no receiving MX): [Test
osv-1.com/email
example.com/notify](https://domainconnect.paulonet.eu/dc/free/templateedit?token=H4sIAOUlpmoC%2F%2B1W%2B0%2FjRhD%2BV1aWUO%2FUJDgP0iQnpDovLkcD5MGVO4SitT1OltheZ3cdCCj92zvrvCHcUalSkYqUH5zZ2W%2Fe3%2ByjoSCIfKrAqDwakeBT5oJouUbF4HKazmYcHhip9cEZDVDROO99TWdRLEFMmQOJOgSU%2BRvZUrOhpURC6LJwSGjoEgEOsCn%2BQ90pCMl4aFSyKcPnQ34pfLwzUiqSlcNDGkWZtROHLkeoMO3wMARHHWr1jJxqFBekI1ikEiSjh7a2DAGZ8VgQLoY0ZA9UK%2F0iSeIsUSPB4%2BGIJOFUiGTDEP1KEZvHoQNkhCh%2BIlAjWMcw4lIlggXGKjPEGYEzlik0G%2Fkz4oKPtsUslbgiI849fRm1FXqPThD8aRQNF2KutJuIwbmEjM4MFYzaPtR3YhMw1FeZTK52QftEPlgBfUBpr9H7SJYa%2BniRMHJHZSKVCgS4hIUp4nFB4J5i3YHEMg1UKkwycccsWGHXT1ttEsW2zxwyhtnKFpMyRhANsGXig%2F6eUj8GQj00Q6LjjzoIOQudqs%2BdsVHxqC9hIbmI7VOY1ZOrT9pMH3fBZVg6tVdBZ6sLkxg13DUoanPhSqNy%2FWgMsaJR0o%2FLeuElNYt0K%2Fav%2BkuEJJP6PDNYRIAR6j6iiuJRdHygM3Ggbyrsx3zRNPHzXtV46GE%2BVJsqZ4TQbe5qXMv3jXnqh6bbVxvL%2BlBPFGehkn2OEg%2FAtakzTstARZmDRQkPMjQpqwS5nkHGBVMznBZzy7WfmO5dNNvPjMvI68Y%2BYMoMFjp%2B7ELlqbXX4tfOrHZjK6%2FPw0sSjR0zhIwIFM2EoF7G32aHPcn7fReahXpU3b2Jo3f%2FKHFuQIXzQrMMVofLDpke19tWt5b9hI0e8hA%2BvbZVLgR47N7Yq7I826CjGkhMnmJUs%2BJ5aEXILMb8Zp4yMD4YbPr%2BBl1bjctysLcGBoUhV8zTPZ4EPGDJra1iLgJEmIgKGki9C1aA1zuINyvI6xXmzRL0BUA9Svqo3Trx2pZ5UutNTnotO1%2FvNKpW59KyCidnVr1WZZ3T6rBTW9rS9IND2eSiv1xPfZAKoc1sLl84Kv5WKlPbccEbjtjt2A9CHk2EVPH07n72YFVr9Ubz5HPry%2Bkf7bPzi06317%2F8%2BufVt%2B%2F%2F1u19OJ1W3epYVR3zohF11Gt2NXTVcL9wAQO9Z6iKBXaEEjESWBD7ig3oHd2IXGdAdbmxyBJPEQvJbac3w8WCfUZkmXWt13z2v8n9zhgOXEf3MdPT7eWKtFSCXNrO2U66YOe8dLmctdNFt%2BSVXY8CeIWtZ86z98%2B%2Bh87T0doeVsu%2FozNpzDXHbNPYsmhJyZ7WaXcNbPbyi8z8lNneWMA7bbo34ukxLqIs2buCyF%2FU9990QVebbzWIe0P8yfJ720Vb7L09Zfvh%2BvsvI1ovyflNCrfiO2e%2Bc%2BY7Z75z5jtnvo4z8e0q6RTcAdXaOTNXTJvldDbfNwuVXLGSzWfKRTObL%2F1qmhXT1CEgyy0ifMT37fbL1mheNfKd28nRyGlattm%2FLOWy55O6X5gULwpjmza%2FTevfG%2FXTo9vPw2Nj%2FjcFwIITiBIAAA%3D%3D)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automerge-possible Label indicating, that restrictive linter checks all pass. For now it's PoC.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants