← Cloudflare Workers / workers / tutorials
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:
- Vytvořte Worker pro odesílání e-mailů.
- Zaregistrujte se a přidejte doménu Cloudflare do služby Postmark.
- Odesílejte e-maily z vašeho Workeru pomocí Postmark.
- 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 Postmark ↗.
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-postmark -- --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 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.
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.
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 startNasaď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_hereTaké se ujistěte, že je secret přidán k nasazenému Workeru spuštěním:
npx wrangler secret put POSTMARK_API_TOKENK 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.