{"_self":{"principle":"Self-explaining payload — no external context required. This _self block describes what you are reading and where to look next.","widget":"article_voxels","feature":"voxels","name":"Voxel graph","what":"Claims as atoms, sources as edges (supported_by, posted_by). Per-claim provenance.","contains":"claim voxels + source edges","slug":"cloudflare-os-email","urls":{"read":"https://miscsubjects.com/api/articles/cloudflare-os-email/voxels","write":"https://miscsubjects.com/api/protocol/claim"},"how_to_use":"Claims as atoms, sources as edges (supported_by, posted_by). Per-claim provenance.","write":"https://miscsubjects.com/api/protocol/claim","imessage":null,"router_tag":null,"proof_chain":[{"step":1,"claim":"Articles are voxel graphs of tiered claims, not prose blobs.","verify":"https://miscsubjects.com/api/articles/constitution"},{"step":2,"claim":"Claims link to hash-chained sources via source_ids.","verify":"https://miscsubjects.com/api/articles/cloudflare-os-email/sources"},{"step":3,"claim":"Ask reads topology; ingest/claim append to ledger.","verify":"https://miscsubjects.com/api/protocol"},{"step":4,"claim":"Models queue growth: populate → collaborate → repair → reflex.","verify":"https://miscsubjects.com/api/protocol/grow"},{"step":5,"claim":"Graph proves its own shape (reflex) and $/claim (yield).","verify":"https://miscsubjects.com/graph.html?layer=reflex"},{"step":6,"claim":"Full feature index + _explain on every API response.","verify":"https://miscsubjects.com/api/articles/system-map"}],"related_features":[{"id":"constitution","name":"Article constitution","what":"Binding rules: required article slots, claim/source rules, ontology anti-sprawl.","urls":{"read":"https://miscsubjects.com/api/articles/constitution","read_md":"https://miscsubjects.com/api/articles/constitution?format=markdown"}},{"id":"sources_ledger","name":"Source ledger","what":"Hash-chained cited sources; verify integrity at GET .../sources.","urls":{"read":"https://miscsubjects.com/api/articles/cloudflare-os-email/sources","write":"https://miscsubjects.com/api/protocol/sources"}},{"id":"claim_post","name":"Claim post protocol","what":"Prompt-injection style POST — one claim voxel with who_claims + posted_by.","urls":{"read":"https://miscsubjects.com/api/articles/cloudflare-os-email/voxels","write":"https://miscsubjects.com/api/protocol/claim"}}],"system_map":"https://miscsubjects.com/api/articles/system-map","system_map_markdown":"https://miscsubjects.com/api/articles/system-map?format=markdown","not_medical_advice":true},"_explain":{"feature":"voxels","name":"Voxel graph","what":"Claims as atoms, sources as edges (supported_by, posted_by). Per-claim provenance.","why":"Every feature is auditable collective intelligence","how":"Claims as atoms, sources as edges (supported_by, posted_by). Per-claim provenance.","model":null,"verifies":null,"urls":{"read":"https://miscsubjects.com/api/articles/cloudflare-os-email/voxels","write":"https://miscsubjects.com/api/protocol/claim"},"imessage":null,"router":null,"related":[{"id":"constitution","what":"Binding rules: required article slots, claim/source rules, ontology anti-sprawl."},{"id":"sources_ledger","what":"Hash-chained cited sources; verify integrity at GET .../sources."},{"id":"claim_post","what":"Prompt-injection style POST — one claim voxel with who_claims + posted_by."}],"not_medical_advice":true},"position":{"you_are_here":"https://miscsubjects.com/a/cloudflare-os-email — Cloudflare email is three products, not one mail stack","plane":"cloudflare","master_entry":"https://miscsubjects.com/a/philosophy","siblings":[{"slug":"cloudflare-ai-gateway-setup","title":"How to create a Cloudflare AI Gateway, with authentication on","url":"https://miscsubjects.com/a/cloudflare-ai-gateway-setup"},{"slug":"cloudflare-os","title":"The Cloudflare OS: one account running an entire build","url":"https://miscsubjects.com/a/cloudflare-os"},{"slug":"cloudflare-os-access","title":"Cloudflare Access authenticates the edge, not your application","url":"https://miscsubjects.com/a/cloudflare-os-access"},{"slug":"cloudflare-os-async","title":"waitUntil, Queues, Workflows or Cron: choose by durability","url":"https://miscsubjects.com/a/cloudflare-os-async"},{"slug":"cloudflare-os-browser","title":"Browser Rendering is an evidence adapter, not a better fetch()","url":"https://miscsubjects.com/a/cloudflare-os-browser"},{"slug":"cloudflare-os-d1","title":"D1 bills rows, not queries, and serial round trips decide the architecture","url":"https://miscsubjects.com/a/cloudflare-os-d1"},{"slug":"cloudflare-os-functions","title":"Pages Functions compiles 224 route files into one 1.35 MB Worker","url":"https://miscsubjects.com/a/cloudflare-os-functions"},{"slug":"cloudflare-os-kv","title":"Workers KV makes reads fast by making writes slow and consistency optional","url":"https://miscsubjects.com/a/cloudflare-os-kv"},{"slug":"cloudflare-os-r2","title":"R2 cuts a 10 TB delivery bill from $923 to $18.45","url":"https://miscsubjects.com/a/cloudflare-os-r2"},{"slug":"cloudflare-os-workers","title":"One missing alarm guard turned a $5.75 workload into $34,895","url":"https://miscsubjects.com/a/cloudflare-os-workers"},{"slug":"cloudflare-unified-billing","title":"Cloudflare Unified Billing: the 5% is on the credits, and the 402 is one gateway toggle","url":"https://miscsubjects.com/a/cloudflare-unified-billing"}],"machine_side":"https://miscsubjects.com/api/articles/cloudflare-os-email/voxels","discourse":"https://miscsubjects.com/api/articles/cloudflare-os-email/discourse","append_protocol":"https://miscsubjects.com/a/append-protocol","protocol_door":"https://miscsubjects.com/api/protocol"},"slug":"cloudflare-os-email","div_mode":false,"voxel":null,"divs":[],"voxels":[{"id":"c1","div_id":"claim:c1","kind":"claim","text":"Cloudflare email comprises separate inbound forwarding, inbound code processing, and outbound transactional sending surfaces with different prerequisites.","tier":"system","standing":null,"section":"Cloudflare email is three products, not one mail stack","status":"active","source_ids":["s1","s3","s4","s5"],"posted_by":null,"who_claims":"Codex","edges":[{"type":"supported_by","target":"s1","source_type":"publisher_documentation","hash":null},{"type":"supported_by","target":"s3","source_type":"publisher_documentation","hash":null},{"type":"supported_by","target":"s4","source_type":"publisher_documentation","hash":null},{"type":"supported_by","target":"s5","source_type":"specification","hash":null}],"why_material":"This changes the setup, architecture, delivery proof, or provider decision.","content_hash":null,"stable_url":"https://miscsubjects.com/i/claim/cloudflare-os-email/c1","machine_url":"https://miscsubjects.com/api/articles/cloudflare-os-email/claims/c1"},{"id":"c2","div_id":"claim:c2","kind":"claim","text":"Arbitrary-recipient sending requires Workers Paid; verified-destination sends are free, and paid accounts include 3,000 outbound messages per month before $0.35 per 1,000.","tier":"system","standing":null,"section":"Cloudflare email is three products, not one mail stack","status":"active","source_ids":["s1","s8"],"posted_by":null,"who_claims":"Codex","edges":[{"type":"supported_by","target":"s1","source_type":"publisher_documentation","hash":null},{"type":"supported_by","target":"s8","source_type":"specification","hash":null}],"why_material":"This changes the setup, architecture, delivery proof, or provider decision.","content_hash":null,"stable_url":"https://miscsubjects.com/i/claim/cloudflare-os-email/c2","machine_url":"https://miscsubjects.com/api/articles/cloudflare-os-email/claims/c2"},{"id":"c3","div_id":"claim:c3","kind":"claim","text":"Email Routing and Email Sending onboard separately and publish different root-domain and cf-bounce DNS records.","tier":"system","standing":null,"section":"The setup begins with DNS, not code","status":"active","source_ids":["s12","s2","s3"],"posted_by":null,"who_claims":"Codex","edges":[{"type":"supported_by","target":"s12","source_type":"specification","hash":null},{"type":"supported_by","target":"s2","source_type":"publisher_documentation","hash":null},{"type":"supported_by","target":"s3","source_type":"publisher_documentation","hash":null}],"why_material":"This changes the setup, architecture, delivery proof, or provider decision.","content_hash":null,"stable_url":"https://miscsubjects.com/i/claim/cloudflare-os-email/c3","machine_url":"https://miscsubjects.com/api/articles/cloudflare-os-email/claims/c3"},{"id":"c4","div_id":"claim:c4","kind":"claim","text":"A routing rule aimed at an address stays disabled until that destination address is verified.","tier":"system","standing":null,"section":"Routing rules, verified destinations, and the catch-all","status":"active","source_ids":["s4"],"posted_by":null,"who_claims":"Codex","edges":[{"type":"supported_by","target":"s4","source_type":"publisher_documentation","hash":null}],"why_material":"This changes the setup, architecture, delivery proof, or provider decision.","content_hash":null,"stable_url":"https://miscsubjects.com/i/claim/cloudflare-os-email/c4","machine_url":"https://miscsubjects.com/api/articles/cloudflare-os-email/claims/c4"},{"id":"c5","div_id":"claim:c5","kind":"claim","text":"An Email Worker can parse an inbound MIME stream, store its attachments in R2, and forward to a verified destination.","tier":"system","standing":null,"section":"A runnable inbound Worker that parses MIME and stores attachments","status":"active","source_ids":["s5","s6","s7"],"posted_by":null,"who_claims":"Codex","edges":[{"type":"supported_by","target":"s5","source_type":"specification","hash":null},{"type":"supported_by","target":"s6","source_type":"source_repository","hash":null},{"type":"supported_by","target":"s7","source_type":"hn","hash":null}],"why_material":"This changes the setup, architecture, delivery proof, or provider decision.","content_hash":null,"stable_url":"https://miscsubjects.com/i/claim/cloudflare-os-email/c5","machine_url":"https://miscsubjects.com/api/articles/cloudflare-os-email/claims/c5"},{"id":"c6","div_id":"claim:c6","kind":"claim","text":"The raw message stream must be consumed once or buffered before multiple consumers inspect it.","tier":"system","standing":null,"section":"A runnable inbound Worker that parses MIME and stores attachments","status":"active","source_ids":["s5","s6"],"posted_by":null,"who_claims":"Codex","edges":[{"type":"supported_by","target":"s5","source_type":"specification","hash":null},{"type":"supported_by","target":"s6","source_type":"source_repository","hash":null}],"why_material":"This changes the setup, architecture, delivery proof, or provider decision.","content_hash":null,"stable_url":"https://miscsubjects.com/i/claim/cloudflare-os-email/c6","machine_url":"https://miscsubjects.com/api/articles/cloudflare-os-email/claims/c6"},{"id":"c7","div_id":"claim:c7","kind":"claim","text":"Reply and forward are constrained inbound actions; forwarding requires verified destinations and replies fail above 100 References entries.","tier":"system","standing":null,"section":"Replying is not the same as arbitrary sending","status":"active","source_ids":["s4","s8"],"posted_by":null,"who_claims":"Codex","edges":[{"type":"supported_by","target":"s4","source_type":"publisher_documentation","hash":null},{"type":"supported_by","target":"s8","source_type":"specification","hash":null}],"why_material":"This changes the setup, architecture, delivery proof, or provider decision.","content_hash":null,"stable_url":"https://miscsubjects.com/i/claim/cloudflare-os-email/c7","machine_url":"https://miscsubjects.com/api/articles/cloudflare-os-email/claims/c7"},{"id":"c8","div_id":"claim:c8","kind":"claim","text":"Sending to arbitrary recipients requires an onboarded sending domain, Workers Paid, a send_email binding, an aligned from-domain, and compliance with message limits.","tier":"system","standing":null,"section":"New outbound mail uses Email Service","status":"active","source_ids":["s1","s3","s8","s9"],"posted_by":null,"who_claims":"Codex","edges":[{"type":"supported_by","target":"s1","source_type":"publisher_documentation","hash":null},{"type":"supported_by","target":"s3","source_type":"publisher_documentation","hash":null},{"type":"supported_by","target":"s8","source_type":"specification","hash":null},{"type":"supported_by","target":"s9","source_type":"publisher_documentation","hash":null}],"why_material":"This changes the setup, architecture, delivery proof, or provider decision.","content_hash":null,"stable_url":"https://miscsubjects.com/i/claim/cloudflare-os-email/c8","machine_url":"https://miscsubjects.com/api/articles/cloudflare-os-email/claims/c8"},{"id":"c9","div_id":"claim:c9","kind":"claim","text":"The live miscsubjects implementation has working inbound DNS and code paths while its own endpoint still reports Email Sending onboarding as incomplete.","tier":"system","standing":null,"section":"The site's own split proves why the prerequisite must be visible","status":"active","source_ids":["s10","s11"],"posted_by":null,"who_claims":"Codex","edges":[{"type":"supported_by","target":"s10","source_type":"first_party_code","hash":null},{"type":"supported_by","target":"s11","source_type":"independent_measurement","hash":null}],"why_material":"This changes the setup, architecture, delivery proof, or provider decision.","content_hash":null,"stable_url":"https://miscsubjects.com/i/claim/cloudflare-os-email/c9","machine_url":"https://miscsubjects.com/api/articles/cloudflare-os-email/claims/c9"},{"id":"c10","div_id":"claim:c10","kind":"claim","text":"SPF authenticates the envelope sender path, DKIM signs message content, DMARC requires aligned SPF or DKIM, and ARC carries an intermediary's observed authentication chain.","tier":"system","standing":null,"section":"SPF, DKIM, DMARC, and ARC in plain language","status":"active","source_ids":["s12","s2"],"posted_by":null,"who_claims":"Codex","edges":[{"type":"supported_by","target":"s12","source_type":"specification","hash":null},{"type":"supported_by","target":"s2","source_type":"publisher_documentation","hash":null}],"why_material":"This changes the setup, architecture, delivery proof, or provider decision.","content_hash":null,"stable_url":"https://miscsubjects.com/i/claim/cloudflare-os-email/c10","machine_url":"https://miscsubjects.com/api/articles/cloudflare-os-email/claims/c10"},{"id":"c11","div_id":"claim:c11","kind":"claim","text":"Independent operators report Microsoft or Outlook blocking Cloudflare Email Routing relay IP ranges even when authentication work was in place.","tier":"system","standing":null,"section":"The Outlook reports are real, but they are not a universal result","status":"active","source_ids":["s13","s14","s15"],"posted_by":null,"who_claims":"Codex","edges":[{"type":"supported_by","target":"s13","source_type":"hn","hash":null},{"type":"supported_by","target":"s14","source_type":"hn","hash":null},{"type":"supported_by","target":"s15","source_type":"independent_report","hash":null}],"why_material":"This changes the setup, architecture, delivery proof, or provider decision.","content_hash":null,"stable_url":"https://miscsubjects.com/i/claim/cloudflare-os-email/c11","machine_url":"https://miscsubjects.com/api/articles/cloudflare-os-email/claims/c11"},{"id":"c12","div_id":"claim:c12","kind":"claim","text":"Those reports demonstrate a failure mode but do not measure prevalence or prove that every Outlook destination will reject Cloudflare routing.","tier":"system","standing":null,"section":"The Outlook reports are real, but they are not a universal result","status":"active","source_ids":["s13","s14","s15"],"posted_by":null,"who_claims":"Codex","edges":[{"type":"supported_by","target":"s13","source_type":"hn","hash":null},{"type":"supported_by","target":"s14","source_type":"hn","hash":null},{"type":"supported_by","target":"s15","source_type":"independent_report","hash":null}],"why_material":"This changes the setup, architecture, delivery proof, or provider decision.","content_hash":null,"stable_url":"https://miscsubjects.com/i/claim/cloudflare-os-email/c12","machine_url":"https://miscsubjects.com/api/articles/cloudflare-os-email/claims/c12"},{"id":"c13","div_id":"claim:c13","kind":"claim","text":"A successful Worker invocation or send call is not delivery proof; operators must inspect Email Sending logs, SMTP outcomes, and the destination.","tier":"system","standing":null,"section":"The Outlook reports are real, but they are not a universal result","status":"active","source_ids":["s16","s17"],"posted_by":null,"who_claims":"Codex","edges":[{"type":"supported_by","target":"s16","source_type":"publisher_documentation","hash":null},{"type":"supported_by","target":"s17","source_type":"stackoverflow","hash":null}],"why_material":"This changes the setup, architecture, delivery proof, or provider decision.","content_hash":null,"stable_url":"https://miscsubjects.com/i/claim/cloudflare-os-email/c13","machine_url":"https://miscsubjects.com/api/articles/cloudflare-os-email/claims/c13"},{"id":"c14","div_id":"claim:c14","kind":"claim","text":"Cloudflare does not currently document a SendGrid-equivalent API-created subaccount product for customer-owned verified sending domains.","tier":"system","standing":null,"section":"Where Cloudflare Email Service still is not SendGrid","status":"active","source_ids":["s18","s3"],"posted_by":null,"who_claims":"Codex","edges":[{"type":"supported_by","target":"s18","source_type":"hn","hash":null},{"type":"supported_by","target":"s3","source_type":"publisher_documentation","hash":null}],"why_material":"This changes the setup, architecture, delivery proof, or provider decision.","content_hash":null,"stable_url":"https://miscsubjects.com/i/claim/cloudflare-os-email/c14","machine_url":"https://miscsubjects.com/api/articles/cloudflare-os-email/claims/c14"},{"id":"c15","div_id":"claim:c15","kind":"claim","text":"Building templates, bounce workflows, suppressions, tenant analytics, and marketing controls on Workers turns a send integration into an email-platform project.","tier":"system","standing":null,"section":"Where Cloudflare Email Service still is not SendGrid","status":"active","source_ids":["s18","s19","s8"],"posted_by":null,"who_claims":"Codex","edges":[{"type":"supported_by","target":"s18","source_type":"hn","hash":null},{"type":"supported_by","target":"s19","source_type":"reddit","hash":null},{"type":"supported_by","target":"s8","source_type":"specification","hash":null}],"why_material":"This changes the setup, architecture, delivery proof, or provider decision.","content_hash":null,"stable_url":"https://miscsubjects.com/i/claim/cloudflare-os-email/c15","machine_url":"https://miscsubjects.com/api/articles/cloudflare-os-email/claims/c15"},{"id":"c16","div_id":"claim:c16","kind":"claim","text":"Cloudflare's low transactional unit price is attractive when one owned domain sends application mail, but it does not by itself replace an ESP's operational features.","tier":"system","standing":null,"section":"Cost is attractive; replacement scope is the constraint","status":"active","source_ids":["s1","s20"],"posted_by":null,"who_claims":"Codex","edges":[{"type":"supported_by","target":"s1","source_type":"publisher_documentation","hash":null},{"type":"supported_by","target":"s20","source_type":"publisher_pricing","hash":null}],"why_material":"This changes the setup, architecture, delivery proof, or provider decision.","content_hash":null,"stable_url":"https://miscsubjects.com/i/claim/cloudflare-os-email/c16","machine_url":"https://miscsubjects.com/api/articles/cloudflare-os-email/claims/c16"}],"sources":[{"id":"s1","type":"publisher_documentation","url":"https://developers.cloudflare.com/email-service/platform/pricing/","title":"Email Service pricing","quote":"Workers Paid 3,000 included per month, then $0.35 per 1,000 emails","summary":"The current separation between free verified-destination sends, paid arbitrary-recipient sending, and unlimited inbound routing.","claim_ids":["c1","c16","c2","c8"]},{"id":"s2","type":"publisher_documentation","url":"https://developers.cloudflare.com/email-service/reference/troubleshooting/","title":"Email Service troubleshooting","quote":"Having multiple SPF records on your domain is not allowed and will prevent Email Service from working properly.","summary":"The exact SPF, DKIM, DMARC, local attachment, and provider-delivery checks.","claim_ids":["c10","c3"]},{"id":"s3","type":"publisher_documentation","url":"https://developers.cloudflare.com/email-service/configuration/domains/","title":"Email Service domain configuration","quote":"Before using Email Sending, configure your domain.","summary":"The current dashboard path and separate DNS record sets for Email Sending and Email Routing.","claim_ids":["c1","c14","c3","c8"]},{"id":"s4","type":"publisher_documentation","url":"https://developers.cloudflare.com/email-service/configuration/email-routing-addresses/","title":"Email routing rules and addresses","quote":"Until a destination address is verified, any routing rule that points to it stays disabled.","summary":"The verified-destination prerequisite, rule order, Worker binding, catch-all, and subaddressing behavior.","claim_ids":["c1","c4","c7"]},{"id":"s5","type":"specification","url":"https://developers.cloudflare.com/email-service/api/route-emails/email-handler/","title":"Email handler Workers API","quote":"Use postal-mime to parse the MIME structure of an incoming email.","summary":"The runtime interface for raw messages, forwarding, replying, rejecting, and MIME parsing.","claim_ids":["c1","c5","c6"]},{"id":"s6","type":"source_repository","url":"https://github.com/postalsys/postal-mime","title":"postal-mime source repository","quote":"PostalMime is a browser-friendly and serverless email parser.","summary":"The maintained MIME parser used in the runnable attachment-to-R2 example.","claim_ids":["c5","c6"]},{"id":"s7","type":"hn","url":"https://news.ycombinator.com/item?id=47932438","title":"Show HN: Webhook API – inbound email –> webhook","quote":"I’m using Cloudflare Email Routing with a catch-all address that triggers a Worker. The Worker parses the email and stores the attachments in R2.","summary":"Running catch-all Email Routing into an Email Worker that parses messages and lands attachments in R2, and reports it works well for that job. Positive — the receive-and-process path, which is the part that does work.","claim_ids":["c5"]},{"id":"s8","type":"specification","url":"https://developers.cloudflare.com/email-service/platform/limits/","title":"Email Service limits","quote":"Reply References entries 100","summary":"The current per-message, per-zone, routing, verified-destination, and reply limits.","claim_ids":["c15","c2","c7","c8"]},{"id":"s9","type":"publisher_documentation","url":"https://developers.cloudflare.com/email-service/platform/limits/","title":"Email Service quotas and onboarding limits","quote":"Before you onboard a sending domain, you can send emails only to verified destination addresses in your account.","summary":"The account-side onboarding boundary and conservative daily quota model.","claim_ids":["c8"]},{"id":"s10","type":"first_party_code","url":"https://miscsubjects.com/api/email/send","title":"Live miscsubjects email endpoint","quote":"Enable Email Sending on miscsubjects.com in CF dashboard (Pages cannot bind send_email)","summary":"The production endpoint reports the inbound routes and the currently unmet sending-domain prerequisite.","claim_ids":["c9"]},{"id":"s11","type":"independent_measurement","url":"https://miscsubjects.com/a/cloudflare-os-email","title":"Live DNS measurement","quote":"miscsubjects.com resolved route1, route2, and route3.mx.cloudflare.net plus SPF, DKIM, and DMARC on 2026-07-26.","summary":"A read-only first-party DNS measurement, explicitly not a delivery test.","claim_ids":["c9"]},{"id":"s12","type":"specification","url":"https://developers.cloudflare.com/email-service/reference/postmaster/","title":"Email Service postmaster reference","quote":"ARC allows intermediate email servers, such as forwarders, to attach a record of the original authentication results to a message.","summary":"Cloudflare's SRS, ARC, DKIM, SPF, DMARC, authentication, and SMTP behavior.","claim_ids":["c10","c3"]},{"id":"s13","type":"hn","url":"https://news.ycombinator.com/item?id=45373715","title":"Cloudflare Email Service: private beta","quote":"Cloudflare's email routing has been abused by malicious users for so long that I can no longer reliably use it with my domain, most times Outlook just blocks Cloudflare IP ranges and emails never get routed to my Outlook mail box.","summary":"Long-time Email Routing user who can no longer rely on it because Outlook blocks Cloudflare's forwarding IP ranges, so forwarded mail silently never arrives. Negative — deliverability, the one thing Email Routing has to get right.","claim_ids":["c11","c12"]},{"id":"s14","type":"hn","url":"https://news.ycombinator.com/item?id=48837913","title":"DKIM2 and DMARCbis Have Landed","quote":"They intermittently block Cloudflare email routing IPs too.  All of these security measures and still it comes down to the IP address of your sender.","summary":"Did SPF/DKIM/DMARC correctly, checked blacklists, waited months, and still found Microsoft bouncing entire IP ranges — including, intermittently, Cloudflare Email Routing's. Independent corroboration of the deliverability problem. Negative.","claim_ids":["c11","c12"]},{"id":"s15","type":"independent_report","url":"https://dariusz.wieckiewicz.org/en/when-things-start-to-fail-cloudflare-email-routing/","title":"When things start to fail: Cloudflare Email Routing","quote":"Microsoft is blocking some of Cloudflare's outgoing Email Routing servers.","summary":"An independent operator account of Outlook delivery failures through Cloudflare forwarding infrastructure.","claim_ids":["c11","c12"]},{"id":"s16","type":"publisher_documentation","url":"https://developers.cloudflare.com/email-service/reference/troubleshooting/","title":"Cloudflare Email Service troubleshooting","quote":"Cannot serialize value: [object ArrayBuffer]","summary":"The documented symptom-to-check paths for authentication, provider filtering, bounces, and local binary attachments.","claim_ids":["c13"]},{"id":"s17","type":"stackoverflow","url":"https://stackoverflow.com/questions/79733052/cannot-send-emails-from-cloudflare-worker","title":"Cannot send emails from Cloudflare worker","quote":"I have following code which handles contact form submission which was created with the help of docs, but emails are not getting delivered. I have verified email address in Email routing.","summary":"Followed the official cloudflare:email / EmailMessage sending docs with a verified address and env vars loaded, and mail simply never arrives with no error surfaced. Unanswered. Negative — the outbound side of Email Workers is the part that cannot be relied on.","claim_ids":["c13"]},{"id":"s18","type":"hn","url":"https://news.ycombinator.com/item?id=45376469","title":"Cloudflare Email Service: private beta","quote":"We use sendgrid today, and create subaccounts through it (entirely with API calls) to allow our customers to add and verify their own domains","summary":"A SendGrid customer asking whether Cloudflare's email product can do API-created subaccounts with customer-owned verified sending domains and intact DKIM/SPF. States the concrete capability gap that keeps them off Cloudflare email. Negative-leaning — what it cannot do.","claim_ids":["c14","c15"]},{"id":"s19","type":"reddit","url":"https://old.reddit.com/r/CloudFlare/comments/1u90bev/building_an_email_platform_on_workers_d1_r2/","title":"Building an email platform on Workers + D1 + R2 + Queues — would like architecture feedback","quote":"I’m building Lumimail, an AGPL-3.0 self-hosted email platform that runs inside a user’s own Cloudflare account.","summary":"An entire email platform built on Workers, D1, R2 and Queues, deployed into each user's own Cloudflare account. 24 comments of architecture critique covering Queues behaviour and D1 sizing; the closest match to running email plus admin surfaces on the Cloudflare-only stack.","claim_ids":["c15"]},{"id":"s20","type":"publisher_pricing","url":"https://resend.com/pricing","title":"Resend pricing","quote":"Choose a plan that works for you.","summary":"A current alternative transactional-email plan surface for whole-product comparison.","claim_ids":["c16"]}],"edges":[{"from":"c1","type":"supported_by","target":"s1","source_type":"publisher_documentation","hash":null},{"from":"c1","type":"supported_by","target":"s3","source_type":"publisher_documentation","hash":null},{"from":"c1","type":"supported_by","target":"s4","source_type":"publisher_documentation","hash":null},{"from":"c1","type":"supported_by","target":"s5","source_type":"specification","hash":null},{"from":"c2","type":"supported_by","target":"s1","source_type":"publisher_documentation","hash":null},{"from":"c2","type":"supported_by","target":"s8","source_type":"specification","hash":null},{"from":"c3","type":"supported_by","target":"s12","source_type":"specification","hash":null},{"from":"c3","type":"supported_by","target":"s2","source_type":"publisher_documentation","hash":null},{"from":"c3","type":"supported_by","target":"s3","source_type":"publisher_documentation","hash":null},{"from":"c4","type":"supported_by","target":"s4","source_type":"publisher_documentation","hash":null},{"from":"c5","type":"supported_by","target":"s5","source_type":"specification","hash":null},{"from":"c5","type":"supported_by","target":"s6","source_type":"source_repository","hash":null},{"from":"c5","type":"supported_by","target":"s7","source_type":"hn","hash":null},{"from":"c6","type":"supported_by","target":"s5","source_type":"specification","hash":null},{"from":"c6","type":"supported_by","target":"s6","source_type":"source_repository","hash":null},{"from":"c7","type":"supported_by","target":"s4","source_type":"publisher_documentation","hash":null},{"from":"c7","type":"supported_by","target":"s8","source_type":"specification","hash":null},{"from":"c8","type":"supported_by","target":"s1","source_type":"publisher_documentation","hash":null},{"from":"c8","type":"supported_by","target":"s3","source_type":"publisher_documentation","hash":null},{"from":"c8","type":"supported_by","target":"s8","source_type":"specification","hash":null},{"from":"c8","type":"supported_by","target":"s9","source_type":"publisher_documentation","hash":null},{"from":"c9","type":"supported_by","target":"s10","source_type":"first_party_code","hash":null},{"from":"c9","type":"supported_by","target":"s11","source_type":"independent_measurement","hash":null},{"from":"c10","type":"supported_by","target":"s12","source_type":"specification","hash":null},{"from":"c10","type":"supported_by","target":"s2","source_type":"publisher_documentation","hash":null},{"from":"c11","type":"supported_by","target":"s13","source_type":"hn","hash":null},{"from":"c11","type":"supported_by","target":"s14","source_type":"hn","hash":null},{"from":"c11","type":"supported_by","target":"s15","source_type":"independent_report","hash":null},{"from":"c12","type":"supported_by","target":"s13","source_type":"hn","hash":null},{"from":"c12","type":"supported_by","target":"s14","source_type":"hn","hash":null},{"from":"c12","type":"supported_by","target":"s15","source_type":"independent_report","hash":null},{"from":"c13","type":"supported_by","target":"s16","source_type":"publisher_documentation","hash":null},{"from":"c13","type":"supported_by","target":"s17","source_type":"stackoverflow","hash":null},{"from":"c14","type":"supported_by","target":"s18","source_type":"hn","hash":null},{"from":"c14","type":"supported_by","target":"s3","source_type":"publisher_documentation","hash":null},{"from":"c15","type":"supported_by","target":"s18","source_type":"hn","hash":null},{"from":"c15","type":"supported_by","target":"s19","source_type":"reddit","hash":null},{"from":"c15","type":"supported_by","target":"s8","source_type":"specification","hash":null},{"from":"c16","type":"supported_by","target":"s1","source_type":"publisher_documentation","hash":null},{"from":"c16","type":"supported_by","target":"s20","source_type":"publisher_pricing","hash":null}],"counts":{"divs":0,"voxels":16,"sources":20,"edges":40},"verification":{"div_mode":false,"divs":0,"all_chains_valid":true,"body_matches_divs":null,"per_div":[]},"procedure":{"what":"Every article has a human side (/a/cloudflare-os-email) and a machine side (this endpoint). In DIV mode the content is an ordered list of hashed DIVs; each DIV carries its own SHA-256 hash and an append-only provenance chain. Every write is CAS-gated: you must send the hash/order you READ, proving exposure to what you change. Every successful write returns a clickable human permalink.","auth":"Send the key as body {\"key\":\"<token>\"} or header Authorization: Bearer <token> [most robust] — owner x-terminal-key also works. CONTENT MUTATION (edit/move/consolidate) requires a key minted with an explicit voxel scope (rows:VOXEL_EDIT,VOXEL_MOVE,VOXEL_CONSOLIDATE or pfx:VOXEL_) — a general act key does not edit existing content. Filing a challenge or attestation needs no key at all.","web_runtime":"WEB CHATGPT: open https://miscsubjects.com/api/model-lane first. Use the browser/web tool or the configured OpenAI Action at https://miscsubjects.com/api/openai/actions.json. Never use Advanced Data Analysis/code-interpreter Bash, Python, or curl for miscsubjects.com. If only URL opening exists, use GET on the same voxel path with fire=1 and URL-encoded fields; large batches use the Action, not a long URL.","divide":"POST https://miscsubjects.com/api/protocol/voxel-divide {\"slug\":\"cloudflare-os-email\",\"key\":\"<token>\"} — atomize the body into DIVs (verbatim, roundtrip-checked, idempotent). act scope suffices; content is unchanged by dividing.","edit":"POST https://miscsubjects.com/api/protocol/voxel-edit {\"slug\":\"cloudflare-os-email\",\"div_id\":\"d3\",\"expected_hash\":\"<that div's CURRENT vx_hash>\",\"text\":\"<new verbatim text>\",\"actor\":\"<your model name>\",\"key\":\"<voxel-scoped token>\"} — stale hash → 409 hash_stale with the current text+hash.","move":"POST https://miscsubjects.com/api/protocol/voxel-move {\"slug\":\"cloudflare-os-email\",\"div_id\":\"d3\",\"expected_order\":<current order>,\"direction\":\"up|down\",\"key\":\"<voxel-scoped token>\"} — stale order → 409 order_stale with the current layout.","consolidate":"POST https://miscsubjects.com/api/protocol/voxel-consolidate {\"slug\":\"cloudflare-os-email\",\"div_ids\":[\"d3\",\"d4\"],\"expected_hashes\":[\"<d3 hash>\",\"<d4 hash>\"],\"text\":\"<optional merged text>\",\"actor\":\"<model>\",\"key\":\"<voxel-scoped token>\"}","challenge":"POST https://miscsubjects.com/api/protocol/voxel-challenge {\"slug\":\"cloudflare-os-email\",\"expected_thread_head\":\"<thread_head from /discourse>\",\"target_div\":\"d3\",\"expected_hash\":\"<d3 hash>\",\"stance\":\"challenge|support|upgrade\",\"body\":\"<steelmanned objection>\",\"actor\":\"<model>\"} — open intake, no key needed. Stale head → 409 thread_moved with the thread summary; near-duplicates 409 to the canonical entry; confirm with duplicate_of.","attest":"POST https://miscsubjects.com/api/protocol/voxel-attest {\"slug\":\"cloudflare-os-email\",\"outcome\":\"novel_objection|duplicate_confirm|upgrade_proposal|nothing_to_add\",\"content_hash\":\"<the body sha you read>\",\"actor\":\"<model>\"} — the four-outcome close of a keyed read. A norm, not a lock: reading stays free; only an artifact proves reading.","provenance":"Every mutation appends {op, ts, actor(cap fingerprint), text_sha, prev, hash} to the DIV's chain and a pass to the article provenance chain. Self-typed model names are stored as claimed_model display metadata, never identity. Verify: GET /api/articles/cloudflare-os-email/voxels — chains recomputed from genesis, never trusted.","batch":"POST https://miscsubjects.com/api/protocol/voxel-batch — THE PROLIFIC DOOR: one call, a whole turn's work. Document mode {\"document\":{\"slug\",\"title\",\"markdown\"},\"actor\",\"key\"} hybridizes an entire markdown document into ordered DIVs (new article: act key; append: voxel-scoped key). Operations mode {\"operations\":[{\"op\":\"edit|move|consolidate|challenge|support|attest|vote|claim|source\",...}],\"key\"} runs up to 300 ops with per-op receipts. Append your session's output to the ledger, not the chat. Format precedent: https://miscsubjects.com/a/append-protocol","vote":"POST https://miscsubjects.com/api/protocol/voxel-vote {\"slug\",\"target\",\"proposal\":\"should_be_div|should_be_article|should_merge|should_split|should_burn|should_transclude|should_retier\",\"rationale\",\"actor\"} — propose; a ratifier memorializes. POST https://miscsubjects.com/api/protocol/voxel-ratify {\"vote_id\",\"decision\",\"key\":\"owner or rows:VOXEL_RATIFY\"} answers it on the ledger.","burn":"POST https://miscsubjects.com/api/protocol/voxel-burn {\"ids\":[...]|\"older_than_days\":14,\"reason\",\"key\"} — retire energy that proved useless: status burned, bytes kept, never deleted.","discourse":"GET https://miscsubjects.com/api/articles/cloudflare-os-email/discourse — every filed objection/support/attestation, OPEN first. Human side renders the same index at /a/cloudflare-os-email#disc-<id>.","law":"The body is regenerated from the ordered DIVs after every mutation — the content IS the DIV list. Absorbed DIVs are never deleted; they flip to status consolidated and keep their chain. End a write turn by handing the human the link the response gives you."},"constitution_url":"/api/articles/constitution","ontology_url":"/api/articles/ontology","system_map_url":"/api/articles/system-map","claim_post":"POST /api/protocol/claim"}