[{"data":1,"prerenderedAt":814},["ShallowReactive",2],{"navigation_docs":3,"-providers-cloudflare":65,"-providers-cloudflare-surround":811},[4,25],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"\u002Fgetting-started","1.getting-started",[10,15,20],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F2.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F3.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Quickstart","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F4.quickstart","i-lucide-rocket",{"title":26,"icon":6,"path":27,"stem":28,"children":29,"page":6},"Providers","\u002Fproviders","2.providers",[30,35,40,45,50,55,60],{"title":31,"path":32,"stem":33,"icon":34},"Local","\u002Fproviders\u002Flocal","2.providers\u002F1.local","i-lucide-terminal",{"title":36,"path":37,"stem":38,"icon":39},"Resend","\u002Fproviders\u002Fresend","2.providers\u002F2.resend","i-custom-resend",{"title":41,"path":42,"stem":43,"icon":44},"Postmark","\u002Fproviders\u002Fpostmark","2.providers\u002F3.postmark","i-custom-postmark",{"title":46,"path":47,"stem":48,"icon":49},"SendGrid","\u002Fproviders\u002Fsendgrid","2.providers\u002F4.sendgrid","i-custom-sendgrid",{"title":51,"path":52,"stem":53,"icon":54},"Mailgun","\u002Fproviders\u002Fmailgun","2.providers\u002F5.mailgun","i-custom-mailgun",{"title":56,"path":57,"stem":58,"icon":59},"Amazon SES","\u002Fproviders\u002Fses","2.providers\u002F6.ses","i-custom-aws",{"title":61,"path":62,"stem":63,"icon":64},"Cloudflare","\u002Fproviders\u002Fcloudflare","2.providers\u002F7.cloudflare","i-custom-cloudflare",{"id":66,"title":61,"body":67,"description":804,"extension":805,"links":806,"meta":807,"navigation":808,"path":62,"seo":809,"stem":63,"__hash__":810},"docs\u002F2.providers\u002F7.cloudflare.md",{"type":68,"value":69,"toc":799},"minimark",[70,252,257,338,342,350,372,654,692,696,795],[71,72,77],"pre",{"className":73,"code":74,"language":75,"meta":76,"style":76},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createClient } from '@nicogenz\u002Femails-sdk';\nimport { cloudflare } from '@nicogenz\u002Femails-sdk\u002Fcloudflare';\n\nconst email = createClient({\n  provider: cloudflare({\n    accountId: process.env.CLOUDFLARE_ACCOUNT_ID!,\n    apiToken: process.env.CLOUDFLARE_API_TOKEN!,\n  }),\n});\n","ts","",[78,79,80,116,139,146,168,184,209,230,242],"code",{"__ignoreMap":76},[81,82,85,89,93,97,100,103,106,110,113],"span",{"class":83,"line":84},"line",1,[81,86,88],{"class":87},"s7zQu","import",[81,90,92],{"class":91},"sMK4o"," {",[81,94,96],{"class":95},"sTEyZ"," createClient",[81,98,99],{"class":91}," }",[81,101,102],{"class":87}," from",[81,104,105],{"class":91}," '",[81,107,109],{"class":108},"sfazB","@nicogenz\u002Femails-sdk",[81,111,112],{"class":91},"'",[81,114,115],{"class":91},";\n",[81,117,119,121,123,126,128,130,132,135,137],{"class":83,"line":118},2,[81,120,88],{"class":87},[81,122,92],{"class":91},[81,124,125],{"class":95}," cloudflare",[81,127,99],{"class":91},[81,129,102],{"class":87},[81,131,105],{"class":91},[81,133,134],{"class":108},"@nicogenz\u002Femails-sdk\u002Fcloudflare",[81,136,112],{"class":91},[81,138,115],{"class":91},[81,140,142],{"class":83,"line":141},3,[81,143,145],{"emptyLinePlaceholder":144},true,"\n",[81,147,149,153,156,159,162,165],{"class":83,"line":148},4,[81,150,152],{"class":151},"spNyl","const",[81,154,155],{"class":95}," email ",[81,157,158],{"class":91},"=",[81,160,96],{"class":161},"s2Zo4",[81,163,164],{"class":95},"(",[81,166,167],{"class":91},"{\n",[81,169,171,175,178,180,182],{"class":83,"line":170},5,[81,172,174],{"class":173},"swJcz","  provider",[81,176,177],{"class":91},":",[81,179,125],{"class":161},[81,181,164],{"class":95},[81,183,167],{"class":91},[81,185,187,190,192,195,198,201,203,206],{"class":83,"line":186},6,[81,188,189],{"class":173},"    accountId",[81,191,177],{"class":91},[81,193,194],{"class":95}," process",[81,196,197],{"class":91},".",[81,199,200],{"class":95},"env",[81,202,197],{"class":91},[81,204,205],{"class":95},"CLOUDFLARE_ACCOUNT_ID",[81,207,208],{"class":91},"!,\n",[81,210,212,215,217,219,221,223,225,228],{"class":83,"line":211},7,[81,213,214],{"class":173},"    apiToken",[81,216,177],{"class":91},[81,218,194],{"class":95},[81,220,197],{"class":91},[81,222,200],{"class":95},[81,224,197],{"class":91},[81,226,227],{"class":95},"CLOUDFLARE_API_TOKEN",[81,229,208],{"class":91},[81,231,233,236,239],{"class":83,"line":232},8,[81,234,235],{"class":91},"  }",[81,237,238],{"class":95},")",[81,240,241],{"class":91},",\n",[81,243,245,248,250],{"class":83,"line":244},9,[81,246,247],{"class":91},"}",[81,249,238],{"class":95},[81,251,115],{"class":91},[253,254,256],"h2",{"id":255},"options","Options",[258,259,260,279],"table",{},[261,262,263],"thead",{},[264,265,266,270,273,276],"tr",{},[267,268,269],"th",{},"Option",[267,271,272],{},"Type",[267,274,275],{},"Required",[267,277,278],{},"Description",[280,281,282,301,317],"tbody",{},[264,283,284,290,295,298],{},[285,286,287],"td",{},[78,288,289],{},"accountId",[285,291,292],{},[78,293,294],{},"string",[285,296,297],{},"Yes",[285,299,300],{},"Your Cloudflare account ID.",[264,302,303,308,312,314],{},[285,304,305],{},[78,306,307],{},"apiToken",[285,309,310],{},[78,311,294],{},[285,313,297],{},[285,315,316],{},"A Cloudflare API token with permission to send email.",[264,318,319,324,329,332],{},[285,320,321],{},[78,322,323],{},"fetch",[285,325,326],{},[78,327,328],{},"typeof fetch",[285,330,331],{},"No",[285,333,334,335,337],{},"A custom ",[78,336,323],{}," implementation.",[253,339,341],{"id":340},"workers-binding","Workers binding",[343,344,345,346,349],"p",{},"Inside a Cloudflare Worker, you can send through a ",[78,347,348],{},"send_email"," binding instead of the REST API. You don't need an account ID or API token then.",[71,351,356],{"className":352,"code":353,"filename":354,"language":355,"meta":76,"style":76},"language-jsonc shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"send_email\": [{ \"name\": \"EMAIL\" }],\n}\n","wrangler.jsonc","jsonc",[78,357,358,362,367],{"__ignoreMap":76},[81,359,360],{"class":83,"line":84},[81,361,167],{},[81,363,364],{"class":83,"line":118},[81,365,366],{},"  \"send_email\": [{ \"name\": \"EMAIL\" }],\n",[81,368,369],{"class":83,"line":141},[81,370,371],{},"}\n",[71,373,375],{"className":73,"code":374,"language":75,"meta":76,"style":76},"import { createClient } from '@nicogenz\u002Femails-sdk';\nimport { cloudflare } from '@nicogenz\u002Femails-sdk\u002Fcloudflare';\n\nexport default {\n  async fetch(request, env) {\n    const email = createClient({\n      provider: cloudflare({ binding: env.EMAIL }),\n    });\n\n    await email.send({\n      from: 'Acme \u003Chello@acme.com>',\n      to: 'jane@example.com',\n      subject: 'Welcome to Acme',\n      html: '\u003Cp>Thanks for signing up!\u003C\u002Fp>',\n    });\n\n    return new Response('Sent');\n  },\n};\n",[78,376,377,397,417,421,432,456,473,505,514,518,535,552,569,586,603,612,617,642,648],{"__ignoreMap":76},[81,378,379,381,383,385,387,389,391,393,395],{"class":83,"line":84},[81,380,88],{"class":87},[81,382,92],{"class":91},[81,384,96],{"class":95},[81,386,99],{"class":91},[81,388,102],{"class":87},[81,390,105],{"class":91},[81,392,109],{"class":108},[81,394,112],{"class":91},[81,396,115],{"class":91},[81,398,399,401,403,405,407,409,411,413,415],{"class":83,"line":118},[81,400,88],{"class":87},[81,402,92],{"class":91},[81,404,125],{"class":95},[81,406,99],{"class":91},[81,408,102],{"class":87},[81,410,105],{"class":91},[81,412,134],{"class":108},[81,414,112],{"class":91},[81,416,115],{"class":91},[81,418,419],{"class":83,"line":141},[81,420,145],{"emptyLinePlaceholder":144},[81,422,423,426,429],{"class":83,"line":148},[81,424,425],{"class":87},"export",[81,427,428],{"class":87}," default",[81,430,431],{"class":91}," {\n",[81,433,434,437,440,442,446,449,452,454],{"class":83,"line":170},[81,435,436],{"class":151},"  async",[81,438,439],{"class":173}," fetch",[81,441,164],{"class":91},[81,443,445],{"class":444},"sHdIc","request",[81,447,448],{"class":91},",",[81,450,451],{"class":444}," env",[81,453,238],{"class":91},[81,455,431],{"class":91},[81,457,458,461,464,467,469,471],{"class":83,"line":186},[81,459,460],{"class":151},"    const",[81,462,463],{"class":95}," email",[81,465,466],{"class":91}," =",[81,468,96],{"class":161},[81,470,164],{"class":173},[81,472,167],{"class":91},[81,474,475,478,480,482,484,487,490,492,494,496,499,501,503],{"class":83,"line":211},[81,476,477],{"class":173},"      provider",[81,479,177],{"class":91},[81,481,125],{"class":161},[81,483,164],{"class":173},[81,485,486],{"class":91},"{",[81,488,489],{"class":173}," binding",[81,491,177],{"class":91},[81,493,451],{"class":95},[81,495,197],{"class":91},[81,497,498],{"class":95},"EMAIL",[81,500,99],{"class":91},[81,502,238],{"class":173},[81,504,241],{"class":91},[81,506,507,510,512],{"class":83,"line":232},[81,508,509],{"class":91},"    }",[81,511,238],{"class":173},[81,513,115],{"class":91},[81,515,516],{"class":83,"line":244},[81,517,145],{"emptyLinePlaceholder":144},[81,519,521,524,526,528,531,533],{"class":83,"line":520},10,[81,522,523],{"class":87},"    await",[81,525,463],{"class":95},[81,527,197],{"class":91},[81,529,530],{"class":161},"send",[81,532,164],{"class":173},[81,534,167],{"class":91},[81,536,538,541,543,545,548,550],{"class":83,"line":537},11,[81,539,540],{"class":173},"      from",[81,542,177],{"class":91},[81,544,105],{"class":91},[81,546,547],{"class":108},"Acme \u003Chello@acme.com>",[81,549,112],{"class":91},[81,551,241],{"class":91},[81,553,555,558,560,562,565,567],{"class":83,"line":554},12,[81,556,557],{"class":173},"      to",[81,559,177],{"class":91},[81,561,105],{"class":91},[81,563,564],{"class":108},"jane@example.com",[81,566,112],{"class":91},[81,568,241],{"class":91},[81,570,572,575,577,579,582,584],{"class":83,"line":571},13,[81,573,574],{"class":173},"      subject",[81,576,177],{"class":91},[81,578,105],{"class":91},[81,580,581],{"class":108},"Welcome to Acme",[81,583,112],{"class":91},[81,585,241],{"class":91},[81,587,589,592,594,596,599,601],{"class":83,"line":588},14,[81,590,591],{"class":173},"      html",[81,593,177],{"class":91},[81,595,105],{"class":91},[81,597,598],{"class":108},"\u003Cp>Thanks for signing up!\u003C\u002Fp>",[81,600,112],{"class":91},[81,602,241],{"class":91},[81,604,606,608,610],{"class":83,"line":605},15,[81,607,509],{"class":91},[81,609,238],{"class":173},[81,611,115],{"class":91},[81,613,615],{"class":83,"line":614},16,[81,616,145],{"emptyLinePlaceholder":144},[81,618,620,623,626,629,631,633,636,638,640],{"class":83,"line":619},17,[81,621,622],{"class":87},"    return",[81,624,625],{"class":91}," new",[81,627,628],{"class":161}," Response",[81,630,164],{"class":173},[81,632,112],{"class":91},[81,634,635],{"class":108},"Sent",[81,637,112],{"class":91},[81,639,238],{"class":173},[81,641,115],{"class":91},[81,643,645],{"class":83,"line":644},18,[81,646,647],{"class":91},"  },\n",[81,649,651],{"class":83,"line":650},19,[81,652,653],{"class":91},"};\n",[258,655,656,668],{},[261,657,658],{},[264,659,660,662,664,666],{},[267,661,269],{},[267,663,272],{},[267,665,275],{},[267,667,278],{},[280,669,670],{},[264,671,672,677,682,684],{},[285,673,674],{},[78,675,676],{},"binding",[285,678,679],{},[78,680,681],{},"CloudflareEmailBinding",[285,683,297],{},[285,685,686,687,689,690,197],{},"The ",[78,688,348],{}," binding from your Worker's ",[78,691,200],{},[253,693,695],{"id":694},"notes","Notes",[697,698,699,709,731,747,758,775,789],"ul",{},[700,701,702,703,705,706,197],"li",{},"The REST API reports which recipients were delivered, queued, bounced or suppressed. ",[78,704,530],{}," succeeds as long as Cloudflare accepts the email, and these lists are in ",[78,707,708],{},"raw",[700,710,711,712,715,716,719,720,723,724,727,728,197],{},"Errors thrown by the binding become an ",[78,713,714],{},"EmailError",": rate and daily limits map to ",[78,717,718],{},"rate_limited",", delivery and internal errors to ",[78,721,722],{},"provider_error",", and all other errors to ",[78,725,726],{},"validation",". The original error is the ",[78,729,730],{},"cause",[700,732,733,736,737,740,741,743,744,197],{},[78,734,735],{},"tags"," and ",[78,738,739],{},"idempotencyKey"," aren't supported. Passing either throws an ",[78,742,714],{}," with the code ",[78,745,746],{},"unsupported",[700,748,749,750,753,754,743,756,197],{},"Cloudflare allows only one ",[78,751,752],{},"replyTo"," address. Passing more throws an ",[78,755,714],{},[78,757,746],{},[700,759,760,763,764,767,768,197],{},[78,761,762],{},"headers"," must start with ",[78,765,766],{},"X-"," or be on Cloudflare's ",[769,770,774],"a",{"href":771,"rel":772},"https:\u002F\u002Fdevelopers.cloudflare.com\u002Femail-service\u002Freference\u002Fheaders\u002F",[773],"nofollow","header allowlist",[700,776,777,778,781,782,736,785,788],{},"An email can have at most 50 recipients across ",[78,779,780],{},"to",", ",[78,783,784],{},"cc",[78,786,787],{},"bcc",", and can be at most 5 MiB including attachments.",[700,790,791,794],{},[78,792,793],{},"sendBatch"," sends the emails one by one, because Cloudflare has no batch endpoint.",[796,797,798],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}",{"title":76,"searchDepth":118,"depth":118,"links":800},[801,802,803],{"id":255,"depth":118,"text":256},{"id":340,"depth":118,"text":341},{"id":694,"depth":118,"text":695},"Send email through Cloudflare Email Service.","md",null,{},{"icon":64},{"title":61,"description":804},"A9N1wMCkE2UXxQpCNEQnDDLnY8H6L5ykaZ6c6HMStq8",[812,806],{"title":56,"path":57,"stem":58,"description":813,"icon":59,"children":-1},"Send email through Amazon SES.",1791022339879]