[{"data":1,"prerenderedAt":1743},["ShallowReactive",2],{"blog:2024:send-email-with-aws-and-brevo":3,"blogMore-Development":1709,"comments-send-email-with-aws-and-brevo":1722},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"category":11,"tags":12,"excerpt":15,"body":35,"_type":1701,"_id":1702,"_source":1703,"_file":1704,"_stem":1705,"_extension":1706,"url":1707,"wordCount":1708,"minutes":121,"commentCount":101},"/blog/2024/send-email-with-aws-and-brevo","2024",false,"en","Email form sender with AWS Lambda, Brevo & reCAPTCHA","In this article I'll show you how to use AWS Lambda to send an email with Brevo using their API while being protected by reCAPTCHA.","2024-04-25T00:00:00-00:00","Development",[13,14],"AWS","webdev",{"type":16,"children":17},"root",[18,30],{"type":19,"tag":20,"props":21,"children":22},"element","p",{},[23,26,28],{"type":24,"value":25},"text","In my previous article ",{"type":24,"value":27},"Email form sender with Nuxt3, Cloudflare, Brevo & reCAPTCHA",{"type":24,"value":29}," I showed how to use Nuxt3, Brevo & reCAPTCHA with Cloudflare.",{"type":19,"tag":20,"props":31,"children":32},{},[33],{"type":24,"value":34},"In this article I'll show you how to use AWS Lambda instead of Cloudflare to send the email.",{"type":16,"children":36,"toc":1693},[37,44,55,59,65,70,75,81,86,1599,1605,1610,1665,1671,1676,1682,1687],{"type":19,"tag":38,"props":39,"children":41},"h2",{"id":40},"background",[42],{"type":24,"value":43},"Background",{"type":19,"tag":20,"props":45,"children":46},{},[47,48,54],{"type":24,"value":25},{"type":19,"tag":49,"props":50,"children":52},"a",{"href":51},"/blog/2023/send-email-with-nuxt3-cloudflare-and-brevo/",[53],{"type":24,"value":27},{"type":24,"value":29},{"type":19,"tag":20,"props":56,"children":57},{},[58],{"type":24,"value":34},{"type":19,"tag":38,"props":60,"children":62},{"id":61},"aws-lambda-configuration",[63],{"type":24,"value":64},"AWS Lambda configuration",{"type":19,"tag":20,"props":66,"children":67},{},[68],{"type":24,"value":69},"You're going to need an AWS Lambda function so go ahead and create one. I was able to get away with 128MB of memory and a 20 second timeout. You'll also need to configure it as a function URL with the \"NONE\" auth type to allow anonymous posting to it. Also remember to enable cross-origin resource sharing and set the allowed origin to your website's domain(s) with POST method and you probably want to allow all headers with \"*\".",{"type":19,"tag":20,"props":71,"children":72},{},[73],{"type":24,"value":74},"This step will also give you the function URL you'll need to copy into your website's form action attribute.",{"type":19,"tag":38,"props":76,"children":78},{"id":77},"code",[79],{"type":24,"value":80},"Code",{"type":19,"tag":20,"props":82,"children":83},{},[84],{"type":24,"value":85},"Here's the code to paste into your AWS Lambda function.",{"type":19,"tag":87,"props":88,"children":93},"pre",{"className":89,"code":90,"language":91,"meta":92,"style":92},"language-javascript shiki shiki-themes everforest-light dracula","/* global fetch */\n\nexport const handler = async (event, context) => {\n  console.log(\"Starting contact form function\")\n\n  // Validate parameters\n  const { firstName, lastName, email, message, token } = JSON.parse(event.body)\n\n  if (!firstName || !lastName || !email || !message || !token) {\n    return {\n      statusCode: 400,\n      body: JSON.stringify({ statusMessage: \"Missing required fields\" }),\n    }\n  }\n\n  // Validate captcha\n  const verifyResponse = await fetch(\n    \"https://www.google.com/recaptcha/api/siteverify\",\n    {\n      method: \"POST\",\n      headers: {\n        \"content-type\": \"application/x-www-form-urlencoded\",\n      },\n      body: `secret=${process.env.RECAPTCHA_SECRET}&response=${token}`,\n    }\n  )\n  const verifyResponseBody = await verifyResponse.json()\n  if (!verifyResponse.ok) {\n    return \"Unable to validate captcha at this time.\"\n  }\n\n  if (verifyResponseBody.success !== true) {\n    return \"Invalid captcha response.\"\n  }\n\n  // Send email\n  const emailSendResponse = await fetch(\"https://api.brevo.com/v3/smtp/email\", {\n    method: \"POST\",\n    headers: {\n      accept: \"application/json\",\n      \"api-key\": process.env.BREVO_KEY,\n      \"content-type\": \"application/json\",\n    },\n    body: JSON.stringify({\n      to: [\n        {\n          email: process.env.EMAIL_TO_ADDRESS,\n          name: process.env.EMAIL_TO_NAME,\n        },\n      ],\n      sender: {\n        email: email,\n        name: `${firstName} ${lastName}`,\n      },\n      subject: process.env.EMAIL_SUBJECT,\n      textContent: message,\n    }),\n  })\n\n  if (!emailSendResponse.ok) {\n    return \"Message could not be sent at this time.\"\n  }\n\n  return \"Message sent!\"\n}\n","javascript","",[94],{"type":19,"tag":77,"props":95,"children":96},{"__ignoreMap":92},[97,109,119,188,234,242,251,299,307,385,398,424,478,487,496,504,513,545,567,576,606,623,662,671,749,757,766,806,836,858,866,874,911,932,940,948,957,1004,1033,1050,1080,1128,1164,1173,1203,1221,1230,1268,1306,1315,1324,1341,1359,1412,1420,1458,1476,1485,1494,1502,1531,1552,1560,1568,1590],{"type":19,"tag":98,"props":99,"children":102},"span",{"class":100,"line":101},"line",1,[103],{"type":19,"tag":98,"props":104,"children":106},{"style":105},"--shiki-default:#939F91;--shiki-default-font-style:italic;--shiki-dark:#6272A4;--shiki-dark-font-style:inherit",[107],{"type":24,"value":108},"/* global fetch */\n",{"type":19,"tag":98,"props":110,"children":112},{"class":100,"line":111},2,[113],{"type":19,"tag":98,"props":114,"children":116},{"emptyLinePlaceholder":115},true,[117],{"type":24,"value":118},"\n",{"type":19,"tag":98,"props":120,"children":122},{"class":100,"line":121},3,[123,129,135,141,146,151,157,163,168,173,178,183],{"type":19,"tag":98,"props":124,"children":126},{"style":125},"--shiki-default:#35A77C;--shiki-dark:#FF79C6",[127],{"type":24,"value":128},"export",{"type":19,"tag":98,"props":130,"children":132},{"style":131},"--shiki-default:#F57D26;--shiki-dark:#FF79C6",[133],{"type":24,"value":134}," const",{"type":19,"tag":98,"props":136,"children":138},{"style":137},"--shiki-default:#8DA101;--shiki-dark:#50FA7B",[139],{"type":24,"value":140}," handler",{"type":19,"tag":98,"props":142,"children":143},{"style":131},[144],{"type":24,"value":145}," =",{"type":19,"tag":98,"props":147,"children":148},{"style":131},[149],{"type":24,"value":150}," async",{"type":19,"tag":98,"props":152,"children":154},{"style":153},"--shiki-default:#5C6A72;--shiki-dark:#F8F8F2",[155],{"type":24,"value":156}," (",{"type":19,"tag":98,"props":158,"children":160},{"style":159},"--shiki-default:#5C6A72;--shiki-default-font-style:inherit;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic",[161],{"type":24,"value":162},"event",{"type":19,"tag":98,"props":164,"children":165},{"style":153},[166],{"type":24,"value":167},", ",{"type":19,"tag":98,"props":169,"children":170},{"style":159},[171],{"type":24,"value":172},"context",{"type":19,"tag":98,"props":174,"children":175},{"style":153},[176],{"type":24,"value":177},") ",{"type":19,"tag":98,"props":179,"children":180},{"style":131},[181],{"type":24,"value":182},"=>",{"type":19,"tag":98,"props":184,"children":185},{"style":153},[186],{"type":24,"value":187}," {\n",{"type":19,"tag":98,"props":189,"children":191},{"class":100,"line":190},4,[192,197,203,208,213,219,225,229],{"type":19,"tag":98,"props":193,"children":194},{"style":153},[195],{"type":24,"value":196},"  console",{"type":19,"tag":98,"props":198,"children":200},{"style":199},"--shiki-default:#939F91;--shiki-dark:#F8F8F2",[201],{"type":24,"value":202},".",{"type":19,"tag":98,"props":204,"children":205},{"style":137},[206],{"type":24,"value":207},"log",{"type":19,"tag":98,"props":209,"children":210},{"style":153},[211],{"type":24,"value":212},"(",{"type":19,"tag":98,"props":214,"children":216},{"style":215},"--shiki-default:#DFA000;--shiki-dark:#E9F284",[217],{"type":24,"value":218},"\"",{"type":19,"tag":98,"props":220,"children":222},{"style":221},"--shiki-default:#DFA000;--shiki-dark:#F1FA8C",[223],{"type":24,"value":224},"Starting contact form function",{"type":19,"tag":98,"props":226,"children":227},{"style":215},[228],{"type":24,"value":218},{"type":19,"tag":98,"props":230,"children":231},{"style":153},[232],{"type":24,"value":233},")\n",{"type":19,"tag":98,"props":235,"children":237},{"class":100,"line":236},5,[238],{"type":19,"tag":98,"props":239,"children":240},{"emptyLinePlaceholder":115},[241],{"type":24,"value":118},{"type":19,"tag":98,"props":243,"children":245},{"class":100,"line":244},6,[246],{"type":19,"tag":98,"props":247,"children":248},{"style":105},[249],{"type":24,"value":250},"  // Validate parameters\n",{"type":19,"tag":98,"props":252,"children":254},{"class":100,"line":253},7,[255,260,265,270,276,280,285,290,294],{"type":19,"tag":98,"props":256,"children":257},{"style":131},[258],{"type":24,"value":259},"  const",{"type":19,"tag":98,"props":261,"children":262},{"style":153},[263],{"type":24,"value":264}," { firstName, lastName, email, message, token } ",{"type":19,"tag":98,"props":266,"children":267},{"style":131},[268],{"type":24,"value":269},"=",{"type":19,"tag":98,"props":271,"children":273},{"style":272},"--shiki-default:#5C6A72;--shiki-dark:#BD93F9",[274],{"type":24,"value":275}," JSON",{"type":19,"tag":98,"props":277,"children":278},{"style":199},[279],{"type":24,"value":202},{"type":19,"tag":98,"props":281,"children":282},{"style":137},[283],{"type":24,"value":284},"parse",{"type":19,"tag":98,"props":286,"children":287},{"style":153},[288],{"type":24,"value":289},"(event",{"type":19,"tag":98,"props":291,"children":292},{"style":199},[293],{"type":24,"value":202},{"type":19,"tag":98,"props":295,"children":296},{"style":153},[297],{"type":24,"value":298},"body)\n",{"type":19,"tag":98,"props":300,"children":302},{"class":100,"line":301},8,[303],{"type":19,"tag":98,"props":304,"children":305},{"emptyLinePlaceholder":115},[306],{"type":24,"value":118},{"type":19,"tag":98,"props":308,"children":310},{"class":100,"line":309},9,[311,317,321,326,331,336,341,346,350,354,359,363,367,372,376,380],{"type":19,"tag":98,"props":312,"children":314},{"style":313},"--shiki-default:#F85552;--shiki-dark:#FF79C6",[315],{"type":24,"value":316},"  if",{"type":19,"tag":98,"props":318,"children":319},{"style":153},[320],{"type":24,"value":156},{"type":19,"tag":98,"props":322,"children":323},{"style":131},[324],{"type":24,"value":325},"!",{"type":19,"tag":98,"props":327,"children":328},{"style":153},[329],{"type":24,"value":330},"firstName ",{"type":19,"tag":98,"props":332,"children":333},{"style":131},[334],{"type":24,"value":335},"||",{"type":19,"tag":98,"props":337,"children":338},{"style":131},[339],{"type":24,"value":340}," !",{"type":19,"tag":98,"props":342,"children":343},{"style":153},[344],{"type":24,"value":345},"lastName ",{"type":19,"tag":98,"props":347,"children":348},{"style":131},[349],{"type":24,"value":335},{"type":19,"tag":98,"props":351,"children":352},{"style":131},[353],{"type":24,"value":340},{"type":19,"tag":98,"props":355,"children":356},{"style":153},[357],{"type":24,"value":358},"email ",{"type":19,"tag":98,"props":360,"children":361},{"style":131},[362],{"type":24,"value":335},{"type":19,"tag":98,"props":364,"children":365},{"style":131},[366],{"type":24,"value":340},{"type":19,"tag":98,"props":368,"children":369},{"style":153},[370],{"type":24,"value":371},"message ",{"type":19,"tag":98,"props":373,"children":374},{"style":131},[375],{"type":24,"value":335},{"type":19,"tag":98,"props":377,"children":378},{"style":131},[379],{"type":24,"value":340},{"type":19,"tag":98,"props":381,"children":382},{"style":153},[383],{"type":24,"value":384},"token) {\n",{"type":19,"tag":98,"props":386,"children":388},{"class":100,"line":387},10,[389,394],{"type":19,"tag":98,"props":390,"children":391},{"style":313},[392],{"type":24,"value":393},"    return",{"type":19,"tag":98,"props":395,"children":396},{"style":153},[397],{"type":24,"value":187},{"type":19,"tag":98,"props":399,"children":401},{"class":100,"line":400},11,[402,407,413,419],{"type":19,"tag":98,"props":403,"children":404},{"style":153},[405],{"type":24,"value":406},"      statusCode",{"type":19,"tag":98,"props":408,"children":410},{"style":409},"--shiki-default:#939F91;--shiki-dark:#FF79C6",[411],{"type":24,"value":412},":",{"type":19,"tag":98,"props":414,"children":416},{"style":415},"--shiki-default:#DF69BA;--shiki-dark:#BD93F9",[417],{"type":24,"value":418}," 400",{"type":19,"tag":98,"props":420,"children":421},{"style":153},[422],{"type":24,"value":423},",\n",{"type":19,"tag":98,"props":425,"children":427},{"class":100,"line":426},12,[428,433,437,441,445,450,455,459,464,469,473],{"type":19,"tag":98,"props":429,"children":430},{"style":153},[431],{"type":24,"value":432},"      body",{"type":19,"tag":98,"props":434,"children":435},{"style":409},[436],{"type":24,"value":412},{"type":19,"tag":98,"props":438,"children":439},{"style":272},[440],{"type":24,"value":275},{"type":19,"tag":98,"props":442,"children":443},{"style":199},[444],{"type":24,"value":202},{"type":19,"tag":98,"props":446,"children":447},{"style":137},[448],{"type":24,"value":449},"stringify",{"type":19,"tag":98,"props":451,"children":452},{"style":153},[453],{"type":24,"value":454},"({ statusMessage",{"type":19,"tag":98,"props":456,"children":457},{"style":409},[458],{"type":24,"value":412},{"type":19,"tag":98,"props":460,"children":461},{"style":215},[462],{"type":24,"value":463}," \"",{"type":19,"tag":98,"props":465,"children":466},{"style":221},[467],{"type":24,"value":468},"Missing required fields",{"type":19,"tag":98,"props":470,"children":471},{"style":215},[472],{"type":24,"value":218},{"type":19,"tag":98,"props":474,"children":475},{"style":153},[476],{"type":24,"value":477}," }),\n",{"type":19,"tag":98,"props":479,"children":481},{"class":100,"line":480},13,[482],{"type":19,"tag":98,"props":483,"children":484},{"style":153},[485],{"type":24,"value":486},"    }\n",{"type":19,"tag":98,"props":488,"children":490},{"class":100,"line":489},14,[491],{"type":19,"tag":98,"props":492,"children":493},{"style":153},[494],{"type":24,"value":495},"  }\n",{"type":19,"tag":98,"props":497,"children":499},{"class":100,"line":498},15,[500],{"type":19,"tag":98,"props":501,"children":502},{"emptyLinePlaceholder":115},[503],{"type":24,"value":118},{"type":19,"tag":98,"props":505,"children":507},{"class":100,"line":506},16,[508],{"type":19,"tag":98,"props":509,"children":510},{"style":105},[511],{"type":24,"value":512},"  // Validate captcha\n",{"type":19,"tag":98,"props":514,"children":516},{"class":100,"line":515},17,[517,521,526,530,535,540],{"type":19,"tag":98,"props":518,"children":519},{"style":131},[520],{"type":24,"value":259},{"type":19,"tag":98,"props":522,"children":523},{"style":153},[524],{"type":24,"value":525}," verifyResponse ",{"type":19,"tag":98,"props":527,"children":528},{"style":131},[529],{"type":24,"value":269},{"type":19,"tag":98,"props":531,"children":532},{"style":313},[533],{"type":24,"value":534}," await",{"type":19,"tag":98,"props":536,"children":537},{"style":137},[538],{"type":24,"value":539}," fetch",{"type":19,"tag":98,"props":541,"children":542},{"style":153},[543],{"type":24,"value":544},"(\n",{"type":19,"tag":98,"props":546,"children":548},{"class":100,"line":547},18,[549,554,559,563],{"type":19,"tag":98,"props":550,"children":551},{"style":215},[552],{"type":24,"value":553},"    \"",{"type":19,"tag":98,"props":555,"children":556},{"style":221},[557],{"type":24,"value":558},"https://www.google.com/recaptcha/api/siteverify",{"type":19,"tag":98,"props":560,"children":561},{"style":215},[562],{"type":24,"value":218},{"type":19,"tag":98,"props":564,"children":565},{"style":153},[566],{"type":24,"value":423},{"type":19,"tag":98,"props":568,"children":570},{"class":100,"line":569},19,[571],{"type":19,"tag":98,"props":572,"children":573},{"style":153},[574],{"type":24,"value":575},"    {\n",{"type":19,"tag":98,"props":577,"children":579},{"class":100,"line":578},20,[580,585,589,593,598,602],{"type":19,"tag":98,"props":581,"children":582},{"style":153},[583],{"type":24,"value":584},"      method",{"type":19,"tag":98,"props":586,"children":587},{"style":409},[588],{"type":24,"value":412},{"type":19,"tag":98,"props":590,"children":591},{"style":215},[592],{"type":24,"value":463},{"type":19,"tag":98,"props":594,"children":595},{"style":221},[596],{"type":24,"value":597},"POST",{"type":19,"tag":98,"props":599,"children":600},{"style":215},[601],{"type":24,"value":218},{"type":19,"tag":98,"props":603,"children":604},{"style":153},[605],{"type":24,"value":423},{"type":19,"tag":98,"props":607,"children":609},{"class":100,"line":608},21,[610,615,619],{"type":19,"tag":98,"props":611,"children":612},{"style":153},[613],{"type":24,"value":614},"      headers",{"type":19,"tag":98,"props":616,"children":617},{"style":409},[618],{"type":24,"value":412},{"type":19,"tag":98,"props":620,"children":621},{"style":153},[622],{"type":24,"value":187},{"type":19,"tag":98,"props":624,"children":626},{"class":100,"line":625},22,[627,632,637,641,645,649,654,658],{"type":19,"tag":98,"props":628,"children":629},{"style":215},[630],{"type":24,"value":631},"        \"",{"type":19,"tag":98,"props":633,"children":634},{"style":221},[635],{"type":24,"value":636},"content-type",{"type":19,"tag":98,"props":638,"children":639},{"style":215},[640],{"type":24,"value":218},{"type":19,"tag":98,"props":642,"children":643},{"style":409},[644],{"type":24,"value":412},{"type":19,"tag":98,"props":646,"children":647},{"style":215},[648],{"type":24,"value":463},{"type":19,"tag":98,"props":650,"children":651},{"style":221},[652],{"type":24,"value":653},"application/x-www-form-urlencoded",{"type":19,"tag":98,"props":655,"children":656},{"style":215},[657],{"type":24,"value":218},{"type":19,"tag":98,"props":659,"children":660},{"style":153},[661],{"type":24,"value":423},{"type":19,"tag":98,"props":663,"children":665},{"class":100,"line":664},23,[666],{"type":19,"tag":98,"props":667,"children":668},{"style":153},[669],{"type":24,"value":670},"      },\n",{"type":19,"tag":98,"props":672,"children":674},{"class":100,"line":673},24,[675,679,683,688,694,699,703,708,712,717,722,727,731,736,740,745],{"type":19,"tag":98,"props":676,"children":677},{"style":153},[678],{"type":24,"value":432},{"type":19,"tag":98,"props":680,"children":681},{"style":409},[682],{"type":24,"value":412},{"type":19,"tag":98,"props":684,"children":685},{"style":221},[686],{"type":24,"value":687}," `secret=",{"type":19,"tag":98,"props":689,"children":691},{"style":690},"--shiki-default:#8DA101;--shiki-dark:#FF79C6",[692],{"type":24,"value":693},"${",{"type":19,"tag":98,"props":695,"children":696},{"style":153},[697],{"type":24,"value":698},"process",{"type":19,"tag":98,"props":700,"children":701},{"style":199},[702],{"type":24,"value":202},{"type":19,"tag":98,"props":704,"children":705},{"style":153},[706],{"type":24,"value":707},"env",{"type":19,"tag":98,"props":709,"children":710},{"style":199},[711],{"type":24,"value":202},{"type":19,"tag":98,"props":713,"children":714},{"style":272},[715],{"type":24,"value":716},"RECAPTCHA_SECRET",{"type":19,"tag":98,"props":718,"children":719},{"style":690},[720],{"type":24,"value":721},"}",{"type":19,"tag":98,"props":723,"children":724},{"style":221},[725],{"type":24,"value":726},"&response=",{"type":19,"tag":98,"props":728,"children":729},{"style":690},[730],{"type":24,"value":693},{"type":19,"tag":98,"props":732,"children":733},{"style":153},[734],{"type":24,"value":735},"token",{"type":19,"tag":98,"props":737,"children":738},{"style":690},[739],{"type":24,"value":721},{"type":19,"tag":98,"props":741,"children":742},{"style":221},[743],{"type":24,"value":744},"`",{"type":19,"tag":98,"props":746,"children":747},{"style":153},[748],{"type":24,"value":423},{"type":19,"tag":98,"props":750,"children":752},{"class":100,"line":751},25,[753],{"type":19,"tag":98,"props":754,"children":755},{"style":153},[756],{"type":24,"value":486},{"type":19,"tag":98,"props":758,"children":760},{"class":100,"line":759},26,[761],{"type":19,"tag":98,"props":762,"children":763},{"style":153},[764],{"type":24,"value":765},"  )\n",{"type":19,"tag":98,"props":767,"children":769},{"class":100,"line":768},27,[770,774,779,783,787,792,796,801],{"type":19,"tag":98,"props":771,"children":772},{"style":131},[773],{"type":24,"value":259},{"type":19,"tag":98,"props":775,"children":776},{"style":153},[777],{"type":24,"value":778}," verifyResponseBody ",{"type":19,"tag":98,"props":780,"children":781},{"style":131},[782],{"type":24,"value":269},{"type":19,"tag":98,"props":784,"children":785},{"style":313},[786],{"type":24,"value":534},{"type":19,"tag":98,"props":788,"children":789},{"style":153},[790],{"type":24,"value":791}," verifyResponse",{"type":19,"tag":98,"props":793,"children":794},{"style":199},[795],{"type":24,"value":202},{"type":19,"tag":98,"props":797,"children":798},{"style":137},[799],{"type":24,"value":800},"json",{"type":19,"tag":98,"props":802,"children":803},{"style":153},[804],{"type":24,"value":805},"()\n",{"type":19,"tag":98,"props":807,"children":809},{"class":100,"line":808},28,[810,814,818,822,827,831],{"type":19,"tag":98,"props":811,"children":812},{"style":313},[813],{"type":24,"value":316},{"type":19,"tag":98,"props":815,"children":816},{"style":153},[817],{"type":24,"value":156},{"type":19,"tag":98,"props":819,"children":820},{"style":131},[821],{"type":24,"value":325},{"type":19,"tag":98,"props":823,"children":824},{"style":153},[825],{"type":24,"value":826},"verifyResponse",{"type":19,"tag":98,"props":828,"children":829},{"style":199},[830],{"type":24,"value":202},{"type":19,"tag":98,"props":832,"children":833},{"style":153},[834],{"type":24,"value":835},"ok) {\n",{"type":19,"tag":98,"props":837,"children":839},{"class":100,"line":838},29,[840,844,848,853],{"type":19,"tag":98,"props":841,"children":842},{"style":313},[843],{"type":24,"value":393},{"type":19,"tag":98,"props":845,"children":846},{"style":215},[847],{"type":24,"value":463},{"type":19,"tag":98,"props":849,"children":850},{"style":221},[851],{"type":24,"value":852},"Unable to validate captcha at this time.",{"type":19,"tag":98,"props":854,"children":855},{"style":215},[856],{"type":24,"value":857},"\"\n",{"type":19,"tag":98,"props":859,"children":861},{"class":100,"line":860},30,[862],{"type":19,"tag":98,"props":863,"children":864},{"style":153},[865],{"type":24,"value":495},{"type":19,"tag":98,"props":867,"children":869},{"class":100,"line":868},31,[870],{"type":19,"tag":98,"props":871,"children":872},{"emptyLinePlaceholder":115},[873],{"type":24,"value":118},{"type":19,"tag":98,"props":875,"children":877},{"class":100,"line":876},32,[878,882,887,891,896,901,906],{"type":19,"tag":98,"props":879,"children":880},{"style":313},[881],{"type":24,"value":316},{"type":19,"tag":98,"props":883,"children":884},{"style":153},[885],{"type":24,"value":886}," (verifyResponseBody",{"type":19,"tag":98,"props":888,"children":889},{"style":199},[890],{"type":24,"value":202},{"type":19,"tag":98,"props":892,"children":893},{"style":153},[894],{"type":24,"value":895},"success ",{"type":19,"tag":98,"props":897,"children":898},{"style":131},[899],{"type":24,"value":900},"!==",{"type":19,"tag":98,"props":902,"children":903},{"style":415},[904],{"type":24,"value":905}," true",{"type":19,"tag":98,"props":907,"children":908},{"style":153},[909],{"type":24,"value":910},") {\n",{"type":19,"tag":98,"props":912,"children":914},{"class":100,"line":913},33,[915,919,923,928],{"type":19,"tag":98,"props":916,"children":917},{"style":313},[918],{"type":24,"value":393},{"type":19,"tag":98,"props":920,"children":921},{"style":215},[922],{"type":24,"value":463},{"type":19,"tag":98,"props":924,"children":925},{"style":221},[926],{"type":24,"value":927},"Invalid captcha response.",{"type":19,"tag":98,"props":929,"children":930},{"style":215},[931],{"type":24,"value":857},{"type":19,"tag":98,"props":933,"children":935},{"class":100,"line":934},34,[936],{"type":19,"tag":98,"props":937,"children":938},{"style":153},[939],{"type":24,"value":495},{"type":19,"tag":98,"props":941,"children":943},{"class":100,"line":942},35,[944],{"type":19,"tag":98,"props":945,"children":946},{"emptyLinePlaceholder":115},[947],{"type":24,"value":118},{"type":19,"tag":98,"props":949,"children":951},{"class":100,"line":950},36,[952],{"type":19,"tag":98,"props":953,"children":954},{"style":105},[955],{"type":24,"value":956},"  // Send email\n",{"type":19,"tag":98,"props":958,"children":960},{"class":100,"line":959},37,[961,965,970,974,978,982,986,990,995,999],{"type":19,"tag":98,"props":962,"children":963},{"style":131},[964],{"type":24,"value":259},{"type":19,"tag":98,"props":966,"children":967},{"style":153},[968],{"type":24,"value":969}," emailSendResponse ",{"type":19,"tag":98,"props":971,"children":972},{"style":131},[973],{"type":24,"value":269},{"type":19,"tag":98,"props":975,"children":976},{"style":313},[977],{"type":24,"value":534},{"type":19,"tag":98,"props":979,"children":980},{"style":137},[981],{"type":24,"value":539},{"type":19,"tag":98,"props":983,"children":984},{"style":153},[985],{"type":24,"value":212},{"type":19,"tag":98,"props":987,"children":988},{"style":215},[989],{"type":24,"value":218},{"type":19,"tag":98,"props":991,"children":992},{"style":221},[993],{"type":24,"value":994},"https://api.brevo.com/v3/smtp/email",{"type":19,"tag":98,"props":996,"children":997},{"style":215},[998],{"type":24,"value":218},{"type":19,"tag":98,"props":1000,"children":1001},{"style":153},[1002],{"type":24,"value":1003},", {\n",{"type":19,"tag":98,"props":1005,"children":1007},{"class":100,"line":1006},38,[1008,1013,1017,1021,1025,1029],{"type":19,"tag":98,"props":1009,"children":1010},{"style":153},[1011],{"type":24,"value":1012},"    method",{"type":19,"tag":98,"props":1014,"children":1015},{"style":409},[1016],{"type":24,"value":412},{"type":19,"tag":98,"props":1018,"children":1019},{"style":215},[1020],{"type":24,"value":463},{"type":19,"tag":98,"props":1022,"children":1023},{"style":221},[1024],{"type":24,"value":597},{"type":19,"tag":98,"props":1026,"children":1027},{"style":215},[1028],{"type":24,"value":218},{"type":19,"tag":98,"props":1030,"children":1031},{"style":153},[1032],{"type":24,"value":423},{"type":19,"tag":98,"props":1034,"children":1036},{"class":100,"line":1035},39,[1037,1042,1046],{"type":19,"tag":98,"props":1038,"children":1039},{"style":153},[1040],{"type":24,"value":1041},"    headers",{"type":19,"tag":98,"props":1043,"children":1044},{"style":409},[1045],{"type":24,"value":412},{"type":19,"tag":98,"props":1047,"children":1048},{"style":153},[1049],{"type":24,"value":187},{"type":19,"tag":98,"props":1051,"children":1053},{"class":100,"line":1052},40,[1054,1059,1063,1067,1072,1076],{"type":19,"tag":98,"props":1055,"children":1056},{"style":153},[1057],{"type":24,"value":1058},"      accept",{"type":19,"tag":98,"props":1060,"children":1061},{"style":409},[1062],{"type":24,"value":412},{"type":19,"tag":98,"props":1064,"children":1065},{"style":215},[1066],{"type":24,"value":463},{"type":19,"tag":98,"props":1068,"children":1069},{"style":221},[1070],{"type":24,"value":1071},"application/json",{"type":19,"tag":98,"props":1073,"children":1074},{"style":215},[1075],{"type":24,"value":218},{"type":19,"tag":98,"props":1077,"children":1078},{"style":153},[1079],{"type":24,"value":423},{"type":19,"tag":98,"props":1081,"children":1083},{"class":100,"line":1082},41,[1084,1089,1094,1098,1102,1107,1111,1115,1119,1124],{"type":19,"tag":98,"props":1085,"children":1086},{"style":215},[1087],{"type":24,"value":1088},"      \"",{"type":19,"tag":98,"props":1090,"children":1091},{"style":221},[1092],{"type":24,"value":1093},"api-key",{"type":19,"tag":98,"props":1095,"children":1096},{"style":215},[1097],{"type":24,"value":218},{"type":19,"tag":98,"props":1099,"children":1100},{"style":409},[1101],{"type":24,"value":412},{"type":19,"tag":98,"props":1103,"children":1104},{"style":153},[1105],{"type":24,"value":1106}," process",{"type":19,"tag":98,"props":1108,"children":1109},{"style":199},[1110],{"type":24,"value":202},{"type":19,"tag":98,"props":1112,"children":1113},{"style":153},[1114],{"type":24,"value":707},{"type":19,"tag":98,"props":1116,"children":1117},{"style":199},[1118],{"type":24,"value":202},{"type":19,"tag":98,"props":1120,"children":1121},{"style":272},[1122],{"type":24,"value":1123},"BREVO_KEY",{"type":19,"tag":98,"props":1125,"children":1126},{"style":153},[1127],{"type":24,"value":423},{"type":19,"tag":98,"props":1129,"children":1131},{"class":100,"line":1130},42,[1132,1136,1140,1144,1148,1152,1156,1160],{"type":19,"tag":98,"props":1133,"children":1134},{"style":215},[1135],{"type":24,"value":1088},{"type":19,"tag":98,"props":1137,"children":1138},{"style":221},[1139],{"type":24,"value":636},{"type":19,"tag":98,"props":1141,"children":1142},{"style":215},[1143],{"type":24,"value":218},{"type":19,"tag":98,"props":1145,"children":1146},{"style":409},[1147],{"type":24,"value":412},{"type":19,"tag":98,"props":1149,"children":1150},{"style":215},[1151],{"type":24,"value":463},{"type":19,"tag":98,"props":1153,"children":1154},{"style":221},[1155],{"type":24,"value":1071},{"type":19,"tag":98,"props":1157,"children":1158},{"style":215},[1159],{"type":24,"value":218},{"type":19,"tag":98,"props":1161,"children":1162},{"style":153},[1163],{"type":24,"value":423},{"type":19,"tag":98,"props":1165,"children":1167},{"class":100,"line":1166},43,[1168],{"type":19,"tag":98,"props":1169,"children":1170},{"style":153},[1171],{"type":24,"value":1172},"    },\n",{"type":19,"tag":98,"props":1174,"children":1176},{"class":100,"line":1175},44,[1177,1182,1186,1190,1194,1198],{"type":19,"tag":98,"props":1178,"children":1179},{"style":153},[1180],{"type":24,"value":1181},"    body",{"type":19,"tag":98,"props":1183,"children":1184},{"style":409},[1185],{"type":24,"value":412},{"type":19,"tag":98,"props":1187,"children":1188},{"style":272},[1189],{"type":24,"value":275},{"type":19,"tag":98,"props":1191,"children":1192},{"style":199},[1193],{"type":24,"value":202},{"type":19,"tag":98,"props":1195,"children":1196},{"style":137},[1197],{"type":24,"value":449},{"type":19,"tag":98,"props":1199,"children":1200},{"style":153},[1201],{"type":24,"value":1202},"({\n",{"type":19,"tag":98,"props":1204,"children":1206},{"class":100,"line":1205},45,[1207,1212,1216],{"type":19,"tag":98,"props":1208,"children":1209},{"style":153},[1210],{"type":24,"value":1211},"      to",{"type":19,"tag":98,"props":1213,"children":1214},{"style":409},[1215],{"type":24,"value":412},{"type":19,"tag":98,"props":1217,"children":1218},{"style":153},[1219],{"type":24,"value":1220}," [\n",{"type":19,"tag":98,"props":1222,"children":1224},{"class":100,"line":1223},46,[1225],{"type":19,"tag":98,"props":1226,"children":1227},{"style":153},[1228],{"type":24,"value":1229},"        {\n",{"type":19,"tag":98,"props":1231,"children":1233},{"class":100,"line":1232},47,[1234,1239,1243,1247,1251,1255,1259,1264],{"type":19,"tag":98,"props":1235,"children":1236},{"style":153},[1237],{"type":24,"value":1238},"          email",{"type":19,"tag":98,"props":1240,"children":1241},{"style":409},[1242],{"type":24,"value":412},{"type":19,"tag":98,"props":1244,"children":1245},{"style":153},[1246],{"type":24,"value":1106},{"type":19,"tag":98,"props":1248,"children":1249},{"style":199},[1250],{"type":24,"value":202},{"type":19,"tag":98,"props":1252,"children":1253},{"style":153},[1254],{"type":24,"value":707},{"type":19,"tag":98,"props":1256,"children":1257},{"style":199},[1258],{"type":24,"value":202},{"type":19,"tag":98,"props":1260,"children":1261},{"style":272},[1262],{"type":24,"value":1263},"EMAIL_TO_ADDRESS",{"type":19,"tag":98,"props":1265,"children":1266},{"style":153},[1267],{"type":24,"value":423},{"type":19,"tag":98,"props":1269,"children":1271},{"class":100,"line":1270},48,[1272,1277,1281,1285,1289,1293,1297,1302],{"type":19,"tag":98,"props":1273,"children":1274},{"style":153},[1275],{"type":24,"value":1276},"          name",{"type":19,"tag":98,"props":1278,"children":1279},{"style":409},[1280],{"type":24,"value":412},{"type":19,"tag":98,"props":1282,"children":1283},{"style":153},[1284],{"type":24,"value":1106},{"type":19,"tag":98,"props":1286,"children":1287},{"style":199},[1288],{"type":24,"value":202},{"type":19,"tag":98,"props":1290,"children":1291},{"style":153},[1292],{"type":24,"value":707},{"type":19,"tag":98,"props":1294,"children":1295},{"style":199},[1296],{"type":24,"value":202},{"type":19,"tag":98,"props":1298,"children":1299},{"style":272},[1300],{"type":24,"value":1301},"EMAIL_TO_NAME",{"type":19,"tag":98,"props":1303,"children":1304},{"style":153},[1305],{"type":24,"value":423},{"type":19,"tag":98,"props":1307,"children":1309},{"class":100,"line":1308},49,[1310],{"type":19,"tag":98,"props":1311,"children":1312},{"style":153},[1313],{"type":24,"value":1314},"        },\n",{"type":19,"tag":98,"props":1316,"children":1318},{"class":100,"line":1317},50,[1319],{"type":19,"tag":98,"props":1320,"children":1321},{"style":153},[1322],{"type":24,"value":1323},"      ],\n",{"type":19,"tag":98,"props":1325,"children":1327},{"class":100,"line":1326},51,[1328,1333,1337],{"type":19,"tag":98,"props":1329,"children":1330},{"style":153},[1331],{"type":24,"value":1332},"      sender",{"type":19,"tag":98,"props":1334,"children":1335},{"style":409},[1336],{"type":24,"value":412},{"type":19,"tag":98,"props":1338,"children":1339},{"style":153},[1340],{"type":24,"value":187},{"type":19,"tag":98,"props":1342,"children":1344},{"class":100,"line":1343},52,[1345,1350,1354],{"type":19,"tag":98,"props":1346,"children":1347},{"style":153},[1348],{"type":24,"value":1349},"        email",{"type":19,"tag":98,"props":1351,"children":1352},{"style":409},[1353],{"type":24,"value":412},{"type":19,"tag":98,"props":1355,"children":1356},{"style":153},[1357],{"type":24,"value":1358}," email,\n",{"type":19,"tag":98,"props":1360,"children":1362},{"class":100,"line":1361},53,[1363,1368,1372,1377,1381,1386,1390,1395,1400,1404,1408],{"type":19,"tag":98,"props":1364,"children":1365},{"style":153},[1366],{"type":24,"value":1367},"        name",{"type":19,"tag":98,"props":1369,"children":1370},{"style":409},[1371],{"type":24,"value":412},{"type":19,"tag":98,"props":1373,"children":1374},{"style":221},[1375],{"type":24,"value":1376}," `",{"type":19,"tag":98,"props":1378,"children":1379},{"style":690},[1380],{"type":24,"value":693},{"type":19,"tag":98,"props":1382,"children":1383},{"style":153},[1384],{"type":24,"value":1385},"firstName",{"type":19,"tag":98,"props":1387,"children":1388},{"style":690},[1389],{"type":24,"value":721},{"type":19,"tag":98,"props":1391,"children":1392},{"style":690},[1393],{"type":24,"value":1394}," ${",{"type":19,"tag":98,"props":1396,"children":1397},{"style":153},[1398],{"type":24,"value":1399},"lastName",{"type":19,"tag":98,"props":1401,"children":1402},{"style":690},[1403],{"type":24,"value":721},{"type":19,"tag":98,"props":1405,"children":1406},{"style":221},[1407],{"type":24,"value":744},{"type":19,"tag":98,"props":1409,"children":1410},{"style":153},[1411],{"type":24,"value":423},{"type":19,"tag":98,"props":1413,"children":1415},{"class":100,"line":1414},54,[1416],{"type":19,"tag":98,"props":1417,"children":1418},{"style":153},[1419],{"type":24,"value":670},{"type":19,"tag":98,"props":1421,"children":1423},{"class":100,"line":1422},55,[1424,1429,1433,1437,1441,1445,1449,1454],{"type":19,"tag":98,"props":1425,"children":1426},{"style":153},[1427],{"type":24,"value":1428},"      subject",{"type":19,"tag":98,"props":1430,"children":1431},{"style":409},[1432],{"type":24,"value":412},{"type":19,"tag":98,"props":1434,"children":1435},{"style":153},[1436],{"type":24,"value":1106},{"type":19,"tag":98,"props":1438,"children":1439},{"style":199},[1440],{"type":24,"value":202},{"type":19,"tag":98,"props":1442,"children":1443},{"style":153},[1444],{"type":24,"value":707},{"type":19,"tag":98,"props":1446,"children":1447},{"style":199},[1448],{"type":24,"value":202},{"type":19,"tag":98,"props":1450,"children":1451},{"style":272},[1452],{"type":24,"value":1453},"EMAIL_SUBJECT",{"type":19,"tag":98,"props":1455,"children":1456},{"style":153},[1457],{"type":24,"value":423},{"type":19,"tag":98,"props":1459,"children":1461},{"class":100,"line":1460},56,[1462,1467,1471],{"type":19,"tag":98,"props":1463,"children":1464},{"style":153},[1465],{"type":24,"value":1466},"      textContent",{"type":19,"tag":98,"props":1468,"children":1469},{"style":409},[1470],{"type":24,"value":412},{"type":19,"tag":98,"props":1472,"children":1473},{"style":153},[1474],{"type":24,"value":1475}," message,\n",{"type":19,"tag":98,"props":1477,"children":1479},{"class":100,"line":1478},57,[1480],{"type":19,"tag":98,"props":1481,"children":1482},{"style":153},[1483],{"type":24,"value":1484},"    }),\n",{"type":19,"tag":98,"props":1486,"children":1488},{"class":100,"line":1487},58,[1489],{"type":19,"tag":98,"props":1490,"children":1491},{"style":153},[1492],{"type":24,"value":1493},"  })\n",{"type":19,"tag":98,"props":1495,"children":1497},{"class":100,"line":1496},59,[1498],{"type":19,"tag":98,"props":1499,"children":1500},{"emptyLinePlaceholder":115},[1501],{"type":24,"value":118},{"type":19,"tag":98,"props":1503,"children":1505},{"class":100,"line":1504},60,[1506,1510,1514,1518,1523,1527],{"type":19,"tag":98,"props":1507,"children":1508},{"style":313},[1509],{"type":24,"value":316},{"type":19,"tag":98,"props":1511,"children":1512},{"style":153},[1513],{"type":24,"value":156},{"type":19,"tag":98,"props":1515,"children":1516},{"style":131},[1517],{"type":24,"value":325},{"type":19,"tag":98,"props":1519,"children":1520},{"style":153},[1521],{"type":24,"value":1522},"emailSendResponse",{"type":19,"tag":98,"props":1524,"children":1525},{"style":199},[1526],{"type":24,"value":202},{"type":19,"tag":98,"props":1528,"children":1529},{"style":153},[1530],{"type":24,"value":835},{"type":19,"tag":98,"props":1532,"children":1534},{"class":100,"line":1533},61,[1535,1539,1543,1548],{"type":19,"tag":98,"props":1536,"children":1537},{"style":313},[1538],{"type":24,"value":393},{"type":19,"tag":98,"props":1540,"children":1541},{"style":215},[1542],{"type":24,"value":463},{"type":19,"tag":98,"props":1544,"children":1545},{"style":221},[1546],{"type":24,"value":1547},"Message could not be sent at this time.",{"type":19,"tag":98,"props":1549,"children":1550},{"style":215},[1551],{"type":24,"value":857},{"type":19,"tag":98,"props":1553,"children":1555},{"class":100,"line":1554},62,[1556],{"type":19,"tag":98,"props":1557,"children":1558},{"style":153},[1559],{"type":24,"value":495},{"type":19,"tag":98,"props":1561,"children":1563},{"class":100,"line":1562},63,[1564],{"type":19,"tag":98,"props":1565,"children":1566},{"emptyLinePlaceholder":115},[1567],{"type":24,"value":118},{"type":19,"tag":98,"props":1569,"children":1571},{"class":100,"line":1570},64,[1572,1577,1581,1586],{"type":19,"tag":98,"props":1573,"children":1574},{"style":313},[1575],{"type":24,"value":1576},"  return",{"type":19,"tag":98,"props":1578,"children":1579},{"style":215},[1580],{"type":24,"value":463},{"type":19,"tag":98,"props":1582,"children":1583},{"style":221},[1584],{"type":24,"value":1585},"Message sent!",{"type":19,"tag":98,"props":1587,"children":1588},{"style":215},[1589],{"type":24,"value":857},{"type":19,"tag":98,"props":1591,"children":1593},{"class":100,"line":1592},65,[1594],{"type":19,"tag":98,"props":1595,"children":1596},{"style":153},[1597],{"type":24,"value":1598},"}\n",{"type":19,"tag":38,"props":1600,"children":1602},{"id":1601},"environment-variables",[1603],{"type":24,"value":1604},"Environment Variables",{"type":19,"tag":20,"props":1606,"children":1607},{},[1608],{"type":24,"value":1609},"Finally you'll need to configure a few environment variables. These are:",{"type":19,"tag":1611,"props":1612,"children":1613},"ul",{},[1614,1625,1635,1645,1655],{"type":19,"tag":1615,"props":1616,"children":1617},"li",{},[1618,1623],{"type":19,"tag":77,"props":1619,"children":1621},{"className":1620},[],[1622],{"type":24,"value":716},{"type":24,"value":1624}," - Your reCAPTCHA secret key",{"type":19,"tag":1615,"props":1626,"children":1627},{},[1628,1633],{"type":19,"tag":77,"props":1629,"children":1631},{"className":1630},[],[1632],{"type":24,"value":1123},{"type":24,"value":1634}," - Your Brevo API key",{"type":19,"tag":1615,"props":1636,"children":1637},{},[1638,1643],{"type":19,"tag":77,"props":1639,"children":1641},{"className":1640},[],[1642],{"type":24,"value":1263},{"type":24,"value":1644}," - The email address you want to send the email to",{"type":19,"tag":1615,"props":1646,"children":1647},{},[1648,1653],{"type":19,"tag":77,"props":1649,"children":1651},{"className":1650},[],[1652],{"type":24,"value":1301},{"type":24,"value":1654}," - The name of the person you want to send the email to",{"type":19,"tag":1615,"props":1656,"children":1657},{},[1658,1663],{"type":19,"tag":77,"props":1659,"children":1661},{"className":1660},[],[1662],{"type":24,"value":1453},{"type":24,"value":1664}," - The subject of the email",{"type":19,"tag":38,"props":1666,"children":1668},{"id":1667},"conclusion",[1669],{"type":24,"value":1670},"Conclusion",{"type":19,"tag":20,"props":1672,"children":1673},{},[1674],{"type":24,"value":1675},"I hope you find this useful. You could also use AWS's own SES service to send the email but there are plenty of examples of how to do that already.",{"type":19,"tag":38,"props":1677,"children":1679},{"id":1678},"disclaimer",[1680],{"type":24,"value":1681},"Disclaimer",{"type":19,"tag":20,"props":1683,"children":1684},{},[1685],{"type":24,"value":1686},"I am a Brevo partner eligible for commission on sales I make directly with them however I do not receive any compensation for this article or have link-based referrals for commission.",{"type":19,"tag":1688,"props":1689,"children":1690},"style",{},[1691],{"type":24,"value":1692},"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);}",{"title":92,"searchDepth":111,"depth":111,"links":1694},[1695,1696,1697,1698,1699,1700],{"id":40,"depth":111,"text":43},{"id":61,"depth":111,"text":64},{"id":77,"depth":111,"text":80},{"id":1601,"depth":111,"text":1604},{"id":1667,"depth":111,"text":1670},{"id":1678,"depth":111,"text":1681},"markdown","content:blog:2024:send-email-with-aws-and-brevo.md","content","blog/2024/send-email-with-aws-and-brevo.md","blog/2024/send-email-with-aws-and-brevo","md","/blog/2024/send-email-with-aws-and-brevo/",626,[1710,1714,1718],{"title":1711,"date":1712,"url":1713},"HTML5 Video Cheatsheet: Optimizing videos for the web","2025-12-05T00:00:00Z","/blog/2025/html5-video-cheatsheet/",{"title":1715,"date":1716,"url":1717},"Transactions in the MongoDB EF Core Provider","2025-10-25","/blog/2025/mongodb-explicit-transactions/",{"title":1719,"date":1720,"url":1721},"Queryable Encryption with the MongoDB EF Core Provider","2025-09-22","/blog/2025/mongodb-queryable-encryption/",[1723],{"_path":1724,"_dir":1725,"_draft":6,"_partial":6,"_locale":7,"title":1726,"description":1727,"id":1728,"date":1729,"name":1730,"avatar":1731,"url":92,"body":1732,"_type":1701,"_id":1740,"_source":1703,"_file":1741,"_stem":1742,"_extension":1706},"/comments/send-email-with-aws-and-brevo/701295c7-6a9f-4f31-831f-969026208ae1","send-email-with-aws-and-brevo","701295c7 6a9f 4f31 831f 969026208ae1","What do you put for the allowed domains in the recaptcha admin settings?","701295c7-6a9f-4f31-831f-969026208ae1","2024-07-08T08:41:51.447Z","Eddie","https://secure.gravatar.com/avatar/08a01ffbfa6e039295208f023dec0dae?s=80&d=identicon&r=pg",{"type":16,"children":1733,"toc":1738},[1734],{"type":19,"tag":20,"props":1735,"children":1736},{},[1737],{"type":24,"value":1727},{"title":92,"searchDepth":111,"depth":111,"links":1739},[],"content:comments:send-email-with-aws-and-brevo:701295c7-6a9f-4f31-831f-969026208ae1.md","comments/send-email-with-aws-and-brevo/701295c7-6a9f-4f31-831f-969026208ae1.md","comments/send-email-with-aws-and-brevo/701295c7-6a9f-4f31-831f-969026208ae1",1779224630620]