INTEGRITY Dokumentace

Odesílání e-mailů pomocí Postmark

V tomto tutoriálu se naučíte, jak z Workers odesílat transakční e-maily pomocí Postmark. 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-postmark -- --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 Postmarku

Pokud ještě nemáte účet Postmark, můžete si založit bezplatný účet zde. Po registraci zkontrolujte doručenou poštu, zda nedorazil odkaz na potvrzení podpisu odesílatele. Tím se ověří a povolí odesílání e-mailů z vaší registrované e-mailové adresy.

Chcete-li povolit odesílání e-mailů z jiných adres na vaší doméně, přejděte na Sender Signatures v dashboardu Postmark, Add Domain or Signature > Add Domain, poté zadejte svou doménu a klikněte na Verify Domain.

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 (DKIM a Return-Path) ze služby Postmark do vaší domény Cloudflare.

Obrázek znázorňující přidání DNS záznamů k doméně Cloudflare

Jakmile to bude hotové, vraťte se do Postmark a klikněte na Verify tlačítka. 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 Postmark

Chcete-li získat svůj API token, přejděte na Servers kartě a poté My First Server > API Tokens, poté si 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. Ve svém Workeru vytvořte POST požadavek s fetch na e-mailové API Postmark a zahrňte svůj token a tělo zprávy:

export default {
	async fetch(request, env, ctx) {
		return await fetch("https://api.postmarkapp.com/email", {
			method: "POST",
			headers: {
				"Content-Type": "application/json",
				"X-Postmark-Server-Token": "your_postmark_api_token_here",
			},
			body: JSON.stringify({
				From: "[email protected]",
				To: "[email protected]",
				Subject: "Hello World",
				HtmlBody: "<p>Hello from Workers</p>",
			}),
		});
	},
};

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 token 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 token 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:

POSTMARK_API_TOKEN=your_postmark_api_token_here

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 POSTMARK_API_TOKEN

K přidanému tajnému klíči lze přistupovat přes env parametru předaného do fetch handleru vašeho Workeru:

export default {
	async fetch(request, env, ctx) {
		return await fetch("https://api.postmarkapp.com/email", {
			method: "POST",
			headers: {
				"Content-Type": "application/json",
				"X-Postmark-Server-Token": env.POSTMARK_API_TOKEN,
			},
			body: JSON.stringify({
				From: "[email protected]",
				To: "[email protected]",
				Subject: "Hello World",
				HtmlBody: "<p>Hello from Workers</p>",
			}),
		});
	},
};

Nakonec tuto aktualizaci nasaďte pomocí npm run deploy.