Skip to content

first draft emails improved#27805

Merged
thomasgauvin merged 24 commits intoproductionfrom
thomasgauvin-improve-emails
Apr 16, 2026
Merged

first draft emails improved#27805
thomasgauvin merged 24 commits intoproductionfrom
thomasgauvin-improve-emails

Conversation

@thomasgauvin
Copy link
Copy Markdown
Contributor

No description provided.

@thomasgauvin thomasgauvin requested a review from a team as a code owner January 22, 2026 18:49
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Jan 22, 2026

This pull request requires reviews from CODEOWNERS as it changes files that match the following patterns:

Pattern Owners
* @cloudflare/pcx-technical-writing, @cloudflare/product-owners
/src/content/docs/email-routing/ @cloudflare/pcx-technical-writing, @cloudflare/product-owners

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Jan 22, 2026

Preview URL: https://df8a23d1.preview.developers.cloudflare.com
Preview Branch URL: https://thomasgauvin-improve-emails.preview.developers.cloudflare.com

Files with changes (up to 15)

Original Link Updated Link
https://developers.cloudflare.com/email-service/api/route-emails/email-handler/ https://thomasgauvin-improve-emails.preview.developers.cloudflare.com/email-service/api/route-emails/email-handler/
https://developers.cloudflare.com/email-service/examples/email-routing/email-storage/ https://thomasgauvin-improve-emails.preview.developers.cloudflare.com/email-service/examples/email-routing/email-storage/
https://developers.cloudflare.com/email-service/examples/email-sending/email-attachments/ https://thomasgauvin-improve-emails.preview.developers.cloudflare.com/email-service/examples/email-sending/email-attachments/
https://developers.cloudflare.com/email-service/configuration/domains/ https://thomasgauvin-improve-emails.preview.developers.cloudflare.com/email-service/configuration/domains/
https://developers.cloudflare.com/email-service/api/send-emails/workers-api/ https://thomasgauvin-improve-emails.preview.developers.cloudflare.com/email-service/api/send-emails/workers-api/
https://developers.cloudflare.com/email-service/examples/email-routing/hard-bounce-handling/ https://thomasgauvin-improve-emails.preview.developers.cloudflare.com/email-service/examples/email-routing/hard-bounce-handling/
https://developers.cloudflare.com/email-service/reference/troubleshooting/ https://thomasgauvin-improve-emails.preview.developers.cloudflare.com/email-service/reference/troubleshooting/
https://developers.cloudflare.com/email-service/get-started/route-emails/ https://thomasgauvin-improve-emails.preview.developers.cloudflare.com/email-service/get-started/route-emails/
https://developers.cloudflare.com/email-service/ https://thomasgauvin-improve-emails.preview.developers.cloudflare.com/email-service/
https://developers.cloudflare.com/email-service/observability/metrics-analytics/ https://thomasgauvin-improve-emails.preview.developers.cloudflare.com/email-service/observability/metrics-analytics/
https://developers.cloudflare.com/email-service/api/send-emails/rest-api/ https://thomasgauvin-improve-emails.preview.developers.cloudflare.com/email-service/api/send-emails/rest-api/
https://developers.cloudflare.com/email-service/reference/headers/ https://thomasgauvin-improve-emails.preview.developers.cloudflare.com/email-service/reference/headers/
https://developers.cloudflare.com/email-service/reference/postmaster/ https://thomasgauvin-improve-emails.preview.developers.cloudflare.com/email-service/reference/postmaster/
https://developers.cloudflare.com/email-service/examples/email-sending/signup-flow/ https://thomasgauvin-improve-emails.preview.developers.cloudflare.com/email-service/examples/email-sending/signup-flow/
https://developers.cloudflare.com/email-service/local-development/sending/ https://thomasgauvin-improve-emails.preview.developers.cloudflare.com/email-service/local-development/sending/

@github-actions
Copy link
Copy Markdown
Contributor

Hey there, we've marked this pull request as stale because there's no recent activity on it. This label is helps us identify PRs that might need updates (or to be closed out by our team if no longer relevant).

@github-actions github-actions bot added the stale label Feb 12, 2026
@github-actions
Copy link
Copy Markdown
Contributor

Hey there, we've closed out this pull request because it's been stale for a while and there's been no additional action on it. If these changes are still relevant, open a new pull request (or flag to us in a GitHub issue).

@github-actions github-actions bot closed this Mar 15, 2026
@thomasgauvin thomasgauvin reopened this Mar 20, 2026
@thomasgauvin thomasgauvin force-pushed the thomasgauvin-improve-emails branch from 3825901 to a006637 Compare March 20, 2026 17:31
thomasgauvin and others added 6 commits March 20, 2026 14:07
- New reference doc covering whitelisted headers, platform-controlled headers,
  validation rules, limits, usage examples, and error codes
- Add header error codes to Workers API error codes table
- Link headers field in API interface to new reference doc
The directory schema expects 'entry' not 'product', and requires an 'id' field.
Without this, the build fails with 'Cannot read properties of undefined (reading group)'
when Head.astro tries to access product.data.entry.group.
@thomasgauvin thomasgauvin force-pushed the thomasgauvin-improve-emails branch from a006637 to 674d35f Compare March 20, 2026 18:28
- Remove all quarantine system references (email-lifecycle, logs)
- Remove '(work in progress)' from page titles (domains, metrics, postmaster)
- Remove internal timeline note and fix typo in sandboxing partial
- Generalize retry intervals and suppression thresholds (internal details)
- Reword IP reputation to not expose tiered pool architecture
- Remove specific pricing figures
- Remove 'not available' contradiction from local dev sending page
- Delete react-email-templates.mdx example page
- Remove React Email Support feature card from index
- Remove react field from EmailMessage interface
- Remove React Email integration section from Workers API page
- Remove 'Workers binding only' and 'top-level domain required' limitations
- Add REST API page with endpoint, auth, and curl example
- Link to REST API reference across index, get-started, and API pages
- Subdomains are now supported (removed top-level domain restriction)
- Flesh out rest-api.mdx with tabs (simple, multiple recipients, CC/BCC),
  attachments, custom headers, and error handling sections
- Add REST API curl tab as the first tab on the index.mdx landing page
- Add 'Send your first email with the REST API' section to get-started
- Add REST API curl tab to headers.mdx usage examples
- Update workers-api.mdx intro to cross-link REST API as alternative
- Update limits.mdx to clarify which limits apply to both APIs vs Workers only
- Add REST API note to local-development/sending.mdx
- Add REST API context note to examples/email-sending index
- Fix stale react: field in workers-api.mdx batch template example
- Fix 3 broken links to /email-service/configuration/workers/
Cross-referenced docs against fwdr source code, workerd C++ bindings,
published API spec, and internal discussions to fix:

- API endpoint path: /email-service/send -> /email/sending/send
- REST API field names: from.email -> from.address, replyTo -> reply_to
- REST API response shape: messageId -> delivered/permanent_bounces/queued
- Interface type: EmailBinding -> SendEmail (matches workerd)
- Remove sendBatch() (not implemented)
- Fix EmailSendResult (no success field, not a class)
- Error codes: remove 4 non-existent, add E_RECIPIENT_NOT_ALLOWED
- SPF record: _spf.cloudflare.com -> _spf.email.cloudflare.net
- Recipients limit: 100 -> 50 (matches MAX_RCPTS)
- Remove fictitious hourly/monthly quota columns
- Remove default daily limit numbers
- DKIM record type: CNAME -> TXT
- Add canBeForwarded to ForwardableEmailMessage
- Fix legacy /email-routing/ links
- Remove sandbox/production access terminology
- Add pricing: $0.35 per 1,000 emails
- Free plan: can send to account-owned verified addresses
- Fix replyAt typo in deliverability docs
@Oxyjun Oxyjun self-assigned this Apr 13, 2026
Comment thread src/content/docs/email-service/api/route-emails/email-handler.mdx
Comment thread src/content/docs/email-service/concepts/deliverability.mdx Outdated
Comment thread src/content/docs/email-service/configuration/domains.mdx Outdated
Comment thread src/content/docs/email-service/configuration/domains.mdx Outdated
Comment thread src/content/docs/email-service/configuration/domains.mdx Outdated
Comment thread src/content/docs/email-service/configuration/email-routing-addresses.mdx Outdated
Comment thread src/content/docs/email-service/observability/metrics-analytics.mdx Outdated
Comment thread src/content/docs/email-service/platform/limits.mdx
Comment thread src/content/docs/email-service/reference/troubleshooting.mdx Outdated
Comment thread src/content/docs/email-service/reference/headers.mdx Outdated
Oxyjun and others added 3 commits April 15, 2026 11:13
- Merge reference/limits into platform/limits, add sending limits section
- Fix DNS records to match dashboard: sending records on cf-bounce subdomain,
  correct SPF (_spf.mx.cloudflare.net), correct DKIM selectors, add sending MX
- Update dashboard nav paths: Compute & AI -> Compute, add Email Sending/Routing
- Remove global suppression list concept, keep account suppression list only
- Remove inaccurate sections (custom sending domains, sender restrictions,
  multi-domain setup, domain health monitoring)
- Add remote bindings (recommended) to local dev sending docs
- Fix routing local dev: remove wrong Content-Type header, note Message-ID required
- Add rejected status for suppressed emails in logs
- Add separate domains best practice to deliverability page
- Add redirect for reference/limits -> platform/limits
@thomasgauvin thomasgauvin requested a review from a team as a code owner April 16, 2026 01:13
Comment thread src/content/docs/email-routing/index.mdx Outdated
Comment thread src/content/docs/email-service/concepts/deliverability.mdx Outdated
Comment thread src/content/docs/email-service/local-development/sending.mdx Outdated
Co-authored-by: Jun Lee <junlee@cloudflare.com>
Comment thread src/content/docs/email-service/get-started/route-emails.mdx Outdated
Comment thread src/content/docs/email-service/get-started/send-emails.mdx Outdated
}

interface Attachment {
content: string | ArrayBuffer; // Base64 string or binary content
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I don't think base64 is an option here.

@thomasgauvin thomasgauvin merged commit 984af9c into production Apr 16, 2026
12 checks passed
@thomasgauvin thomasgauvin deleted the thomasgauvin-improve-emails branch April 16, 2026 10:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants