← Cloudflare Workers / workers / tutorials
Odesílání e-mailů pomocí Resend
V tomto tutoriálu se naučíte, jak z Workers odesílat transakční e-maily pomocí Resend ↗. Na konci tohoto tutoriálu budete umět:
- Vytvořte Worker pro odesílání e-mailů.
- Zaregistrujte se a přidejte doménu Cloudflare do služby Resend.
- Odesílejte e-maily z vašeho Workeru pomocí Resend.
- Bezpečně ukládejte API klíče pomocí secrets.
Předpoklady
Chcete-li pokračovat v tomto tutoriálu, budete potřebovat:
- účet Cloudflare ↗, pokud ještě žádný nemáte.
- A registrováno domény.
- Nainstalováno npm ↗.
- A Účet Resend ↗.
Vytvořte projekt Worker
Začněte pomocí C3 k vytvoření projektu Worker v příkazové řádce, poté odpovězte na výzvy:
npm create cloudflare@latestAlternativně můžete použít argumenty CLI, abyste vše urychlili:
npm create cloudflare@latest email-with-resend -- --type=hello-world --ts=false --git=true --deploy=falseTím se vytvoří jednoduchý Worker hello world s následujícím obsahem:
export default {
async fetch(request, env, ctx) {
return new Response("Hello World!");
},
};Přidejte svou doménu do Resendu
Pokud ještě nemáte účet Resend, můžete si založit bezplatný účet zde ↗. Po registraci přejděte na Domains pomocí bočního menu a klikněte na tlačítko pro přidání nové domény. V modálním okně zadejte doménu, kterou chcete přidat, a poté vyberte region.
Dále se vám zobrazí seznam DNS záznamů, které je třeba přidat do vaší domény na Cloudflare. Na Cloudflare dashboardu vyberte doménu, kterou jste zadali dříve, a přejděte na DNS > Records. Zkopírujte záznamy DNS (záznamy DKIM, SPF a DMARC) ze služby Resend do vaší domény Cloudflare.
Až to budete mít hotové, vraťte se do Resend a klikněte na Verify DNS Records tlačítko. Pokud jsou všechny záznamy správně nastaveny, měl by se stav vaší domény změnit na Verified.
Nakonec přejděte na API Keys s bočním menu a vytvořte API klíč. Svému klíči přiřaďte popisný název a příslušná oprávnění. Kliknutím na tlačítko přidejte klíč a poté zkopírujte svůj API klíč na bezpečné místo.
Odesílejte e-maily z vašeho Workeru
Posledním krokem je spojení všeho dohromady ve Workeru. Otevřete terminál v adresáři Workeru, který jste vytvořili dříve. Poté nainstalujte Resend SDK:
npm i resendVe svém Workeru importujte a použijte knihovnu Resend takto:
import { Resend } from "resend";
export default {
async fetch(request, env, ctx) {
const resend = new Resend("your_resend_api_key");
const { data, error } = await resend.emails.send({
from: "[email protected]",
to: "[email protected]",
subject: "Hello World",
html: "<p>Hello from Workers</p>",
});
return Response.json({ data, error });
},
};Chcete-li otestovat kód místně, spusťte následující příkaz a přejděte na http://localhost:8787/ ↗ v prohlížeči:
npm startNasaďte svůj Worker pomocí npm run deploy.
Přesuňte API klíče do Secrets
Citlivé informace, jako jsou API klíče a tokeny, by měly být vždy uloženy jako secrets. Všechny secrets jsou šifrovány, což přidává další vrstvu ochrany. Přesto je vhodné přesunout váš API klíč do secretu a přistupovat k němu z prostředí vašeho Workeru.
Chcete-li přidat secrets pro lokální vývoj, vytvořte .dev.vars soubor, který funguje úplně stejně jako .env soubor:
RESEND_API_KEY=your_resend_api_keyTaké se ujistěte, že je secret přidán k nasazenému Workeru spuštěním:
npx wrangler secret put RESEND_API_KEYK přidanému tajnému klíči lze přistupovat přes env parametru předaného do fetch handleru vašeho Workeru:
import { Resend } from "resend";
export default {
async fetch(request, env, ctx) {
const resend = new Resend(env.RESEND_API_KEY);
const { data, error } = await resend.emails.send({
from: "[email protected]",
to: "[email protected]",
subject: "Hello World",
html: "<p>Hello from Workers</p>",
});
return Response.json({ data, error });
},
};Nakonec tuto aktualizaci nasaďte pomocí npm run deploy.