[{"data":1,"prerenderedAt":1075},["ShallowReactive",2],{"navigation":3,"\u002Fdevelopers\u002Fnextjs":224,"\u002Fdevelopers\u002Fnextjs-surround":1071},[4,9,14,40,57,74,95,112,133,150,207,216],{"title":5,"path":6,"stem":7,"icon":8},"Quick start","\u002Fgetting-started","01.getting-started","i-lucide-rocket",{"title":10,"path":11,"stem":12,"icon":13},"Set up from the terminal","\u002Fcli","02.cli","i-lucide-terminal",{"title":15,"path":16,"stem":17,"children":18,"page":39},"Domains & DNS","\u002Fdomains","03.domains",[19,23,27,31,35],{"title":20,"path":21,"stem":22},"Adding a domain","\u002Fdomains\u002Fadding-a-domain","03.domains\u002F01.adding-a-domain",{"title":24,"path":25,"stem":26},"Automatic DNS setup","\u002Fdomains\u002Fautomatic-dns-setup","03.domains\u002F02.automatic-dns-setup",{"title":28,"path":29,"stem":30},"Manual DNS records","\u002Fdomains\u002Fmanual-dns-records","03.domains\u002F03.manual-dns-records",{"title":32,"path":33,"stem":34},"Domain verification","\u002Fdomains\u002Fverification","03.domains\u002F04.verification",{"title":36,"path":37,"stem":38},"Troubleshooting DNS","\u002Fdomains\u002Ftroubleshooting","03.domains\u002F05.troubleshooting",false,{"title":41,"path":42,"stem":43,"children":44,"page":39},"Mailboxes & Aliases","\u002Fmailboxes","04.mailboxes",[45,49,53],{"title":46,"path":47,"stem":48},"Creating mailboxes","\u002Fmailboxes\u002Fcreating-mailboxes","04.mailboxes\u002F01.creating-mailboxes",{"title":50,"path":51,"stem":52},"Aliases","\u002Fmailboxes\u002Faliases","04.mailboxes\u002F02.aliases",{"title":54,"path":55,"stem":56},"Passwords, passkeys & access","\u002Fmailboxes\u002Fpasswords-and-access","04.mailboxes\u002F03.passwords-and-access",{"title":58,"path":59,"stem":60,"children":61,"page":39},"Using Your Mail","\u002Fmail","05.mail",[62,66,70],{"title":63,"path":64,"stem":65},"Webmail","\u002Fmail\u002Fwebmail","05.mail\u002F01.webmail",{"title":67,"path":68,"stem":69},"IMAP & SMTP settings","\u002Fmail\u002Fimap-smtp-settings","05.mail\u002F02.imap-smtp-settings",{"title":71,"path":72,"stem":73},"iPhone setup","\u002Fmail\u002Fios-profile","05.mail\u002F03.ios-profile",{"title":75,"path":76,"stem":77,"children":78,"page":39},"Drive","\u002Fdrive","06.drive",[79,83,87,91],{"title":80,"path":81,"stem":82},"Drive overview","\u002Fdrive\u002Foverview","06.drive\u002F01.overview",{"title":84,"path":85,"stem":86},"Uploading & organising files","\u002Fdrive\u002Ffiles-and-folders","06.drive\u002F02.files-and-folders",{"title":88,"path":89,"stem":90},"Sharing files","\u002Fdrive\u002Fsharing","06.drive\u002F03.sharing",{"title":92,"path":93,"stem":94},"Connect Drive to other apps","\u002Fdrive\u002Fconnect-apps","06.drive\u002F04.connect-apps",{"title":96,"path":97,"stem":98,"children":99,"page":39},"Sending & Campaigns","\u002Fsending","07.sending",[100,104,108],{"title":101,"path":102,"stem":103},"Sending limits","\u002Fsending\u002Flimits","07.sending\u002F01.limits",{"title":105,"path":106,"stem":107},"Campaigns","\u002Fsending\u002Fcampaigns","07.sending\u002F02.campaigns",{"title":109,"path":110,"stem":111},"Deliverability & staying out of spam","\u002Fsending\u002Fdeliverability","07.sending\u002F03.deliverability",{"title":113,"path":114,"stem":115,"children":116,"page":39},"Transactional Email","\u002Ftransactional","08.transactional",[117,121,125,129],{"title":118,"path":119,"stem":120},"Transactional email","\u002Ftransactional\u002Foverview","08.transactional\u002F01.overview",{"title":122,"path":123,"stem":124},"Templates","\u002Ftransactional\u002Ftemplates","08.transactional\u002F02.templates",{"title":126,"path":127,"stem":128},"Sending via the API","\u002Ftransactional\u002Fsend-api","08.transactional\u002F03.send-api",{"title":130,"path":131,"stem":132},"Webhooks","\u002Ftransactional\u002Fwebhooks","08.transactional\u002F04.webhooks",{"title":134,"path":135,"stem":136,"children":137,"page":39},"Migrations","\u002Fmigrations","09.migrations",[138,142,146],{"title":139,"path":140,"stem":141},"Migrating your email","\u002Fmigrations\u002Foverview","09.migrations\u002F01.overview",{"title":143,"path":144,"stem":145},"Migrating from Gmail","\u002Fmigrations\u002Ffrom-gmail","09.migrations\u002F02.from-gmail",{"title":147,"path":148,"stem":149},"Migrating from Microsoft 365","\u002Fmigrations\u002Ffrom-microsoft-365","09.migrations\u002F03.from-microsoft-365",{"title":151,"path":152,"stem":153,"children":154,"page":39},"AI & Developers","\u002Fdevelopers","10.developers",[155,159,163,167,171,174,178,182,187,191,195,199,203],{"title":156,"path":157,"stem":158,"icon":8},"Quickstart","\u002Fdevelopers\u002Fquickstart","10.developers\u002F00.quickstart",{"title":160,"path":161,"stem":162},"Connect ChatGPT","\u002Fdevelopers\u002Fconnect-chatgpt","10.developers\u002F01.connect-chatgpt",{"title":164,"path":165,"stem":166},"Connect Claude","\u002Fdevelopers\u002Fconnect-claude","10.developers\u002F01.connect-claude",{"title":168,"path":169,"stem":170},"AI agents & API keys","\u002Fdevelopers\u002Fai-agents","10.developers\u002F02.ai-agents",{"title":130,"path":172,"stem":173},"\u002Fdevelopers\u002Fwebhooks","10.developers\u002F03.webhooks",{"title":175,"path":176,"stem":177},"Partner API","\u002Fdevelopers\u002Fpartners","10.developers\u002F04.partners",{"title":179,"path":180,"stem":181},"Use Faivelo from your coding agent","\u002Fdevelopers\u002Fcoding-agents","10.developers\u002F06.coding-agents",{"title":183,"path":184,"stem":185,"icon":186},"Errors","\u002Fdevelopers\u002Ferrors","10.developers\u002F07.errors","i-lucide-circle-alert",{"title":188,"path":189,"stem":190},"Email your agent","\u002Fdevelopers\u002Femail-your-agent","10.developers\u002F08.email-your-agent",{"title":192,"path":193,"stem":194},"Email agent with Claude","\u002Fdevelopers\u002Fagent-with-claude","10.developers\u002F09.agent-with-claude",{"title":196,"path":197,"stem":198},"Email agent with ChatGPT","\u002Fdevelopers\u002Fagent-with-chatgpt","10.developers\u002F10.agent-with-chatgpt",{"title":200,"path":201,"stem":202},"Next.js","\u002Fdevelopers\u002Fnextjs","10.developers\u002F11.nextjs",{"title":204,"path":205,"stem":206},"Nuxt","\u002Fdevelopers\u002Fnuxt","10.developers\u002F12.nuxt",{"title":208,"path":209,"stem":210,"children":211,"page":39},"Billing","\u002Fbilling","11.billing",[212],{"title":213,"path":214,"stem":215},"Billing & plans","\u002Fbilling\u002Fplans","11.billing\u002F01.plans",{"title":217,"path":218,"stem":219,"children":220,"page":39},"Security","\u002Fsecurity","12.security",[221],{"title":217,"path":222,"stem":223},"\u002Fsecurity\u002Foverview","12.security\u002F01.overview",{"id":225,"title":200,"body":226,"description":1061,"extension":1062,"links":1063,"meta":1064,"navigation":308,"path":201,"seo":1065,"stem":202,"__hash__":1070},"docs\u002F10.developers\u002F11.nextjs.md",{"type":227,"value":228,"toc":1049},"minimark",[229,233,259,262,267,430,442,447,464,549,552,560,597,601,606,650,657,660,664,685,693,704,708,852,866,896,913,917,931,1012,1019,1022,1026,1045],[230,231,232],"p",{},"Email for your Next.js app, sent from your own domain. Send welcome emails, receipts and sign-in links from a Server Action with React Email, and get replies and delivery events back as typed, signed webhooks.",[234,235,240],"pre",{"className":236,"code":237,"language":238,"meta":239,"style":239},"language-bash shiki shiki-themes github-light-high-contrast","npm install @faivelo\u002Fnext\n","bash","",[241,242,243],"code",{"__ignoreMap":239},[244,245,248,252,256],"span",{"class":246,"line":247},"line",1,[244,249,251],{"class":250},"sV4o_","npm",[244,253,255],{"class":254},"sYEJz"," install",[244,257,258],{"class":254}," @faivelo\u002Fnext\n",[230,260,261],{},"It works before you have an account: with no API key in development, every email is saved to a local outbox you can open in the browser, not sent.",[263,264,266],"h2",{"id":265},"send-an-email","Send an email",[234,268,272],{"className":269,"code":270,"language":271,"meta":239,"style":239},"language-ts shiki shiki-themes github-light-high-contrast","\u002F\u002F app\u002Factions.ts\n'use server'\nimport { sendEmail } from '@faivelo\u002Fnext'\n\nexport async function signUp(formData: FormData) {\n  const email = String(formData.get('email'))\n  \u002F\u002F ...create the user...\n  await sendEmail({\n    to: email,\n    subject: 'Welcome to Acme',\n    html: '\u003Cp>Your account is ready.\u003C\u002Fp>',\n  })\n}\n","ts",[241,273,274,280,286,303,310,341,371,377,389,395,407,418,424],{"__ignoreMap":239},[244,275,276],{"class":246,"line":247},[244,277,279],{"class":278},"sFeEa","\u002F\u002F app\u002Factions.ts\n",[244,281,283],{"class":246,"line":282},2,[244,284,285],{"class":254},"'use server'\n",[244,287,289,293,297,300],{"class":246,"line":288},3,[244,290,292],{"class":291},"sTJeM","import",[244,294,296],{"class":295},"sigWx"," { sendEmail } ",[244,298,299],{"class":291},"from",[244,301,302],{"class":254}," '@faivelo\u002Fnext'\n",[244,304,306],{"class":246,"line":305},4,[244,307,309],{"emptyLinePlaceholder":308},true,"\n",[244,311,313,316,319,322,326,329,332,335,338],{"class":246,"line":312},5,[244,314,315],{"class":291},"export",[244,317,318],{"class":291}," async",[244,320,321],{"class":291}," function",[244,323,325],{"class":324},"s3dhs"," signUp",[244,327,328],{"class":295},"(",[244,330,331],{"class":250},"formData",[244,333,334],{"class":291},":",[244,336,337],{"class":250}," FormData",[244,339,340],{"class":295},") {\n",[244,342,344,347,351,354,357,360,363,365,368],{"class":246,"line":343},6,[244,345,346],{"class":291},"  const",[244,348,350],{"class":349},"sacAq"," email",[244,352,353],{"class":291}," =",[244,355,356],{"class":324}," String",[244,358,359],{"class":295},"(formData.",[244,361,362],{"class":324},"get",[244,364,328],{"class":295},[244,366,367],{"class":254},"'email'",[244,369,370],{"class":295},"))\n",[244,372,374],{"class":246,"line":373},7,[244,375,376],{"class":278},"  \u002F\u002F ...create the user...\n",[244,378,380,383,386],{"class":246,"line":379},8,[244,381,382],{"class":291},"  await",[244,384,385],{"class":324}," sendEmail",[244,387,388],{"class":295},"({\n",[244,390,392],{"class":246,"line":391},9,[244,393,394],{"class":295},"    to: email,\n",[244,396,398,401,404],{"class":246,"line":397},10,[244,399,400],{"class":295},"    subject: ",[244,402,403],{"class":254},"'Welcome to Acme'",[244,405,406],{"class":295},",\n",[244,408,410,413,416],{"class":246,"line":409},11,[244,411,412],{"class":295},"    html: ",[244,414,415],{"class":254},"'\u003Cp>Your account is ready.\u003C\u002Fp>'",[244,417,406],{"class":295},[244,419,421],{"class":246,"line":420},12,[244,422,423],{"class":295},"  })\n",[244,425,427],{"class":246,"line":426},13,[244,428,429],{"class":295},"}\n",[230,431,432,434,435,438,439,441],{},[241,433,299],{}," defaults to ",[241,436,437],{},"FAIVELO_FROM",". Pass ",[241,440,299],{}," to override it per email.",[443,444,446],"h3",{"id":445},"with-react-email","With React Email",[234,448,450],{"className":236,"code":449,"language":238,"meta":239,"style":239},"npm install @react-email\u002Frender @react-email\u002Fcomponents\n",[241,451,452],{"__ignoreMap":239},[244,453,454,456,458,461],{"class":246,"line":247},[244,455,251],{"class":250},[244,457,255],{"class":254},[244,459,460],{"class":254}," @react-email\u002Frender",[244,462,463],{"class":254}," @react-email\u002Fcomponents\n",[234,465,469],{"className":466,"code":467,"language":468,"meta":239,"style":239},"language-tsx shiki shiki-themes github-light-high-contrast","import { sendEmail } from '@faivelo\u002Fnext'\nimport WelcomeEmail from '@\u002Femails\u002Fwelcome'\n\nawait sendEmail({\n  to: user.email,\n  subject: 'Welcome to Acme',\n  react: \u003CWelcomeEmail name={user.name} \u002F>,\n})\n","tsx",[241,470,471,481,493,497,506,511,520,544],{"__ignoreMap":239},[244,472,473,475,477,479],{"class":246,"line":247},[244,474,292],{"class":291},[244,476,296],{"class":295},[244,478,299],{"class":291},[244,480,302],{"class":254},[244,482,483,485,488,490],{"class":246,"line":282},[244,484,292],{"class":291},[244,486,487],{"class":295}," WelcomeEmail ",[244,489,299],{"class":291},[244,491,492],{"class":254}," '@\u002Femails\u002Fwelcome'\n",[244,494,495],{"class":246,"line":288},[244,496,309],{"emptyLinePlaceholder":308},[244,498,499,502,504],{"class":246,"line":305},[244,500,501],{"class":291},"await",[244,503,385],{"class":324},[244,505,388],{"class":295},[244,507,508],{"class":246,"line":312},[244,509,510],{"class":295},"  to: user.email,\n",[244,512,513,516,518],{"class":246,"line":343},[244,514,515],{"class":295},"  subject: ",[244,517,403],{"class":254},[244,519,406],{"class":295},[244,521,522,525,529,532,535,538,541],{"class":246,"line":373},[244,523,524],{"class":295},"  react: \u003C",[244,526,528],{"class":527},"s742_","WelcomeEmail",[244,530,531],{"class":349}," name",[244,533,534],{"class":291},"={",[244,536,537],{"class":295},"user.name",[244,539,540],{"class":291},"}",[244,542,543],{"class":295}," \u002F>,\n",[244,545,546],{"class":246,"line":379},[244,547,548],{"class":295},"})\n",[230,550,551],{},"The component becomes the HTML body and a plain-text version is made from it.",[443,553,555,556,559],{"id":554},"everything-else-emailssend-takes","Everything else ",[241,557,558],{},"emails.send"," takes",[230,561,562,565,566,565,569,565,572,565,575,578,579,582,583,586,587,596],{},[241,563,564],{},"cc",", ",[241,567,568],{},"bcc",[241,570,571],{},"replyTo",[241,573,574],{},"attachments",[241,576,577],{},"templateAlias"," with ",[241,580,581],{},"variables",", and ",[241,584,585],{},"idempotencyKey"," all work. They are the options of ",[588,589,593],"a",{"href":590,"rel":591},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Ffaivelo",[592],"nofollow",[241,594,595],{},"faivelo.emails.send",".",[263,598,600],{"id":599},"set-up","Set up",[230,602,603,334],{},[241,604,605],{},".env.local",[234,607,609],{"className":236,"code":608,"language":238,"meta":239,"style":239},"FAIVELO_API_KEY=fvl_live_...            # Settings → Developers in Faivelo\nFAIVELO_FROM=\"Acme \u003Chello@acme.com>\"    # any address on a domain you added\nFAIVELO_WEBHOOK_SECRET=whsec_...        # only if you receive webhooks\n",[241,610,611,625,637],{"__ignoreMap":239},[244,612,613,616,619,622],{"class":246,"line":247},[244,614,615],{"class":295},"FAIVELO_API_KEY",[244,617,618],{"class":291},"=",[244,620,621],{"class":254},"fvl_live_...",[244,623,624],{"class":278},"            # Settings → Developers in Faivelo\n",[244,626,627,629,631,634],{"class":246,"line":282},[244,628,437],{"class":295},[244,630,618],{"class":291},[244,632,633],{"class":254},"\"Acme \u003Chello@acme.com>\"",[244,635,636],{"class":278},"    # any address on a domain you added\n",[244,638,639,642,644,647],{"class":246,"line":288},[244,640,641],{"class":295},"FAIVELO_WEBHOOK_SECRET",[244,643,618],{"class":291},[244,645,646],{"class":254},"whsec_...",[244,648,649],{"class":278},"        # only if you receive webhooks\n",[230,651,652,653,656],{},"No domain yet? ",[241,654,655],{},"npx faivelo init acme.com"," adds it and gets the DNS records in place: one click where your DNS host allows it, copy-ready values otherwise.",[230,658,659],{},"Add the same variables to your host's environment for production. In production a missing key is an error, never a silent capture.",[263,661,663],{"id":662},"the-dev-outbox","The dev outbox",[230,665,666,667,669,670,673,674,565,677,680,681,684],{},"With no ",[241,668,615],{}," and ",[241,671,672],{},"NODE_ENV"," not ",[241,675,676],{},"production",[241,678,679],{},"sendEmail()"," saves the email instead of sending it and returns a normal response with an id starting ",[241,682,683],{},"dev_",". The terminal prints a link:",[234,686,691],{"className":687,"code":689,"language":690},[688],"language-text","[faivelo] Email captured, not sent (no FAIVELO_API_KEY in development).\n  to:      ada@example.com\n  subject: Welcome to Acme\n  preview: file:\u002F\u002F\u002F…\u002F.faivelo\u002Foutbox\u002Fdev_….html\n","text",[241,692,689],{"__ignoreMap":239},[230,694,695,696,699,700,703],{},"Open ",[241,697,698],{},".faivelo\u002Foutbox\u002Findex.html"," to see every captured email. The folder has its own ",[241,701,702],{},".gitignore",", so it is never committed. Add the API key and the same code sends for real.",[263,705,707],{"id":706},"receive-replies-and-delivery-events","Receive replies and delivery events",[234,709,711],{"className":269,"code":710,"language":271,"meta":239,"style":239},"\u002F\u002F app\u002Fapi\u002Ffaivelo\u002Froute.ts\nimport { faiveloWebhook } from '@faivelo\u002Fnext'\n\nexport const POST = faiveloWebhook({\n  'message.received': async (event) => {\n    \u002F\u002F Someone wrote to one of your mailboxes, or replied to your app's email.\n    const { from, subject, mailbox } = event.data\n  },\n  'email.bounced': async (event) => {\n    await markUndeliverable(event.data.to)\n  },\n})\n",[241,712,713,718,729,733,750,776,781,809,814,833,844,848],{"__ignoreMap":239},[244,714,715],{"class":246,"line":247},[244,716,717],{"class":278},"\u002F\u002F app\u002Fapi\u002Ffaivelo\u002Froute.ts\n",[244,719,720,722,725,727],{"class":246,"line":282},[244,721,292],{"class":291},[244,723,724],{"class":295}," { faiveloWebhook } ",[244,726,299],{"class":291},[244,728,302],{"class":254},[244,730,731],{"class":246,"line":288},[244,732,309],{"emptyLinePlaceholder":308},[244,734,735,737,740,743,745,748],{"class":246,"line":305},[244,736,315],{"class":291},[244,738,739],{"class":291}," const",[244,741,742],{"class":349}," POST",[244,744,353],{"class":291},[244,746,747],{"class":324}," faiveloWebhook",[244,749,388],{"class":295},[244,751,752,755,758,761,764,767,770,773],{"class":246,"line":312},[244,753,754],{"class":254},"  'message.received'",[244,756,757],{"class":295},": ",[244,759,760],{"class":291},"async",[244,762,763],{"class":295}," (",[244,765,766],{"class":250},"event",[244,768,769],{"class":295},") ",[244,771,772],{"class":291},"=>",[244,774,775],{"class":295}," {\n",[244,777,778],{"class":246,"line":343},[244,779,780],{"class":278},"    \u002F\u002F Someone wrote to one of your mailboxes, or replied to your app's email.\n",[244,782,783,786,789,791,793,796,798,801,804,806],{"class":246,"line":373},[244,784,785],{"class":291},"    const",[244,787,788],{"class":295}," { ",[244,790,299],{"class":349},[244,792,565],{"class":295},[244,794,795],{"class":349},"subject",[244,797,565],{"class":295},[244,799,800],{"class":349},"mailbox",[244,802,803],{"class":295}," } ",[244,805,618],{"class":291},[244,807,808],{"class":295}," event.data\n",[244,810,811],{"class":246,"line":379},[244,812,813],{"class":295},"  },\n",[244,815,816,819,821,823,825,827,829,831],{"class":246,"line":391},[244,817,818],{"class":254},"  'email.bounced'",[244,820,757],{"class":295},[244,822,760],{"class":291},[244,824,763],{"class":295},[244,826,766],{"class":250},[244,828,769],{"class":295},[244,830,772],{"class":291},[244,832,775],{"class":295},[244,834,835,838,841],{"class":246,"line":397},[244,836,837],{"class":291},"    await",[244,839,840],{"class":324}," markUndeliverable",[244,842,843],{"class":295},"(event.data.to)\n",[244,845,846],{"class":246,"line":409},[244,847,813],{"class":295},[244,849,850],{"class":246,"line":420},[244,851,548],{"class":295},[230,853,854,855,858,859,863,864,596],{},"Then add ",[241,856,857],{},"https:\u002F\u002Fyour-app.com\u002Fapi\u002Ffaivelo"," as an endpoint in ",[860,861,862],"strong",{},"Settings → Developers → Webhooks"," and put its signing secret in ",[241,865,641],{},[867,868,869,873,883,889],"ul",{},[870,871,872],"li",{},"Every request is checked against the signature before your code runs. A bad or old signature gets a 400.",[870,874,875,876,565,879,882],{},"Each handler gets the event typed for its name: ",[241,877,878],{},"event.data.from.address",[241,880,881],{},"event.data.bounce.reason",", and so on.",[870,884,885,888],{},[241,886,887],{},"'*'"," handles any event without its own handler. Events you did not list get a 200 and are dropped.",[870,890,891,892,895],{},"If your handler throws, the answer is a 500 and Faivelo tries again for up to a day. A retry has the same ",[241,893,894],{},"event.id",", so use it to skip repeats.",[230,897,898,899,669,902,905,906,669,909,912],{},"Webhooks come with the Growth, Pro and Business plans. ",[241,900,901],{},"message.received",[241,903,904],{},"message.sent"," need Pro or Business. The handler uses the standard ",[241,907,908],{},"Request",[241,910,911],{},"Response",", so it also works in Hono, Remix and other web-standard servers.",[263,914,916],{"id":915},"the-full-api","The full API",[230,918,919,922,923,927,928,930],{},[241,920,921],{},"faivelo"," is the full ",[588,924,926],{"href":590,"rel":925},[592],"Faivelo SDK"," client, made from ",[241,929,615],{}," when you first use it:",[234,932,934],{"className":269,"code":933,"language":271,"meta":239,"style":239},"import { faivelo } from '@faivelo\u002Fnext'\n\nconst { messages } = await faivelo.messages.list('support@acme.com', { limit: 10 })\nawait faivelo.mailboxes.create({ domain: 'acme.com', localPart: 'agent' })\n",[241,935,936,947,951,988],{"__ignoreMap":239},[244,937,938,940,943,945],{"class":246,"line":247},[244,939,292],{"class":291},[244,941,942],{"class":295}," { faivelo } ",[244,944,299],{"class":291},[244,946,302],{"class":254},[244,948,949],{"class":246,"line":282},[244,950,309],{"emptyLinePlaceholder":308},[244,952,953,956,958,961,963,965,968,971,974,976,979,982,985],{"class":246,"line":288},[244,954,955],{"class":291},"const",[244,957,788],{"class":295},[244,959,960],{"class":349},"messages",[244,962,803],{"class":295},[244,964,618],{"class":291},[244,966,967],{"class":291}," await",[244,969,970],{"class":295}," faivelo.messages.",[244,972,973],{"class":324},"list",[244,975,328],{"class":295},[244,977,978],{"class":254},"'support@acme.com'",[244,980,981],{"class":295},", { limit: ",[244,983,984],{"class":349},"10",[244,986,987],{"class":295}," })\n",[244,989,990,992,995,998,1001,1004,1007,1010],{"class":246,"line":305},[244,991,501],{"class":291},[244,993,994],{"class":295}," faivelo.mailboxes.",[244,996,997],{"class":324},"create",[244,999,1000],{"class":295},"({ domain: ",[244,1002,1003],{"class":254},"'acme.com'",[244,1005,1006],{"class":295},", localPart: ",[244,1008,1009],{"class":254},"'agent'",[244,1011,987],{"class":295},[230,1013,1014,1015,1018],{},"Use ",[241,1016,1017],{},"getFaivelo({ apiKey })"," to make a client with a different key.",[230,1020,1021],{},"Everything in this package runs on the server only. The key never reaches the browser, and calling it from a Client Component throws.",[263,1023,1025],{"id":1024},"links","Links",[867,1027,1028,1033,1040],{},[870,1029,1030],{},[588,1031,1032],{"href":172},"Webhook events",[870,1034,1035],{},[588,1036,1039],{"href":1037,"rel":1038},"https:\u002F\u002Ffaivelo.com\u002Fdocs\u002Fapi",[592],"API reference",[870,1041,1042,1043,596],{},"Nuxt app? See ",[588,1044,204],{"href":205},[1046,1047,1048],"style",{},"html pre.shiki code .sV4o_, html code.shiki .sV4o_{--shiki-default:#702C00}html pre.shiki code .sYEJz, html code.shiki .sYEJz{--shiki-default:#032563}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 pre.shiki code .sFeEa, html code.shiki .sFeEa{--shiki-default:#66707B}html pre.shiki code .sTJeM, html code.shiki .sTJeM{--shiki-default:#A0111F}html pre.shiki code .sigWx, html code.shiki .sigWx{--shiki-default:#0E1116}html pre.shiki code .s3dhs, html code.shiki .s3dhs{--shiki-default:#622CBC}html pre.shiki code .sacAq, html code.shiki .sacAq{--shiki-default:#023B95}html pre.shiki code .s742_, html code.shiki .s742_{--shiki-default:#024C1A}",{"title":239,"searchDepth":247,"depth":282,"links":1050},[1051,1056,1057,1058,1059,1060],{"id":265,"depth":282,"text":266,"children":1052},[1053,1054],{"id":445,"depth":288,"text":446},{"id":554,"depth":288,"text":1055},"Everything else emails.send takes",{"id":599,"depth":282,"text":600},{"id":662,"depth":282,"text":663},{"id":706,"depth":282,"text":707},{"id":915,"depth":282,"text":916},{"id":1024,"depth":282,"text":1025},"[object Object]","md",null,{},{"title":200,"description":1066},{"Send email from your own domain in a Next":1067},{"js app, with React Email, typed webhooks and a dev outbox":1068},{" Package":1069},"@faivelo\u002Fnext.","jmd1uFuA_r0w3nxCymdox56madcJ3ML5YYEE33CeVWA",[1072,1074],{"title":196,"path":197,"stem":198,"description":1073,"children":-1},"Put ChatGPT behind an email address with a connector, or build the agent on the OpenAI API with Faivelo as an MCP tool.",{"title":204,"path":205,"stem":206,"description":1061,"children":-1},1793622031378]