Next.js
-
Installa l’SDK.
Finestra del terminale npm install @spacepost/node -
Aggiungi la tua chiave a
.env.local. Non anteporre il prefissoNEXT_PUBLIC_..env.local SPACEPOST_API_KEY=sp_live_YOUR_API_KEY -
Crea un route handler.
app/api/send/route.ts import { SpacePost } from "@spacepost/node";const spacepost = new SpacePost(process.env.SPACEPOST_API_KEY);export async function POST(request: Request) {const { email } = await request.json();const { data, error } = await spacepost.emails.send({from: "Acme <hello@acme.com>",to: [email],subject: "Hello from Next.js",html: "<p>Sent from a route handler.</p>",});if (error) return Response.json({ error }, { status: error.statusCode ?? 500 });return Response.json(data);}
Server action
Sezione intitolata “Server action”"use server";
import { SpacePost } from "@spacepost/node";
const spacepost = new SpacePost(process.env.SPACEPOST_API_KEY);
export async function subscribe(formData: FormData) { const email = String(formData.get("email")); const { error } = await spacepost.emails.send({ from: "Acme <hello@acme.com>", to: email, subject: "You're on the list", text: "Thanks for subscribing.", }); if (error) throw new Error(error.message);}React Email
Sezione intitolata “React Email”Installa @react-email/render, poi passa un componente tramite react:
import { SpacePost } from "@spacepost/node";import WelcomeEmail from "@/emails/welcome";
const spacepost = new SpacePost();
export async function POST() { const { data, error } = await spacepost.emails.send({ from: "Acme <hello@acme.com>", to: "user@example.com", subject: "Welcome", react: <WelcomeEmail name="Ada" />, }); return Response.json(error ?? data);}