INTEGRITY Dokumentace

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:

Předpoklady

Chcete-li pokračovat v tomto tutoriálu, budete potřebovat:

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@latest

Alternativně 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=false

Tí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.

Obrázek znázorňující přidání DNS záznamů k doméně 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.

Obrázek ověření domény v dashboardu Resend

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 resend

Ve 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 start

Nasaď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_key

Také se ujistěte, že je secret přidán k nasazenému Workeru spuštěním:

Přidejte tajný klíč do nasazeného Workeru
npx wrangler secret put RESEND_API_KEY

K 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.